精华内容
下载资源
问答
  • ![图片说明](https://img-ask.csdn.net/upload/201905/16/1557975315_284521.png) 一直提醒类型不匹配 求解
  • 当我尝试从VBA代码中的函数获取返回值时,它给出了类型不匹配错误 ' verifyExcelTickers returns integers Dim result As Integer result = verifyExcelTickers(tickerName, exchangeName) If result = 1 Then ...

    我正在使用python和xlwings在sqlite数据库和excel之间编写接口 . 有一个python函数:

    # verifyExcelTickers returns 1, 2, and 3. 2 means everything is alright,

    # 1 means the tickerName wasn't found, and 3 means multiple tickers were

    # found.

    @xw.func

    def verifyExcelTickers (ticker,exchange):

    dbConn = sqlite3.connect("./Python Scripts/Stock_Tracker/stockTracker.db",uri=True)

    return verifyExchTableTicker(ticker,True,exchange,dbConn)[0]

    那是困扰我的 . 我使用自动UDF生成器将它加载到excel中,没有问题 . 如果我在excel电子表格中使用该功能,没问题 . 当我尝试从VBA代码中的函数获取返回值时,它给出了类型不匹配错误

    ' verifyExcelTickers returns integers

    Dim result As Integer

    result = verifyExcelTickers(tickerName, exchangeName)

    If result = 1 Then

    sheet.Range("A" & i, "B" & i).Interior.Color = RGB(255, 0, 0)

    bFoundError = True

    ElseIf result = 2 Then

    sheet.Range("A" & i, "B" & i).Interior.Color = RGB(255, 255, 255)

    ElseIf result = 3 Then

    ' Multiple tickers

    sheet.Range("A" & i, "B" & i).Interior.Color = RGB(255, 255, 0)

    bFoundError = True

    End If

    以上崩溃结果= ver .... line . 如果我将结果类型更改为variant,它不会再抱怨它,但如果我尝试从那里转换为整数,则会引发其他错误 . 关于发生了什么的任何想法?一直试图处理这个问题几个小时了 .

    谢谢

    展开全文
  • 在Access中,我们通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立数据库管理系统。...在进入 VBA 编程之前, 首先需要了解VBA 支持的数据类型,因为不同的数据类型有着不同的存储方...

    在Access中,我们通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立数据库管理系统。但是通过这些对象创建的数据管理系统有一定的局限性,无法实现复杂的数据管理。

    而VBA则可以对Access的数据管理功能进行扩展,使开发出来的系统更具灵活性和自主性,可以完成一些无法实现的功能。

    在进入 VBA 编程之前, 首先需要了解VBA 支持的数据类型,因为不同的数据类型有着不同的存储方式和数据结构。如果不指定数据类型,VBA会默认将其作为变体型 Variant,此类型可以根据实际需要自动转换成相应的其他数据类型。

    但是, 让 VBA 自动转换数据类型会使程序的执行效率降低, 所以在编写 VBA 代码时, 必须定义好数据类型, 选择占用字节最少、 又能很好地处理数据的类型, 才能保证程序运行更快。

    VBA 支持的数据类型主要有字符串型、 数值型、 日期型、 货币型等。除了这些内置的数据类型外, 用户还可以自定义数据类型。下表中列出了常用的数据类型供用户参考。

    9a6e8d5b830f261d9fd18143f6f19d95.png

    技术看板

    在 Access 中, 字段的数据类型与 VBA 中的数据类型大多都是相对应的。 例如, 字段的货币类型与 VBA 中的货币型相对应, 是 / 否类型与 VBA中的布尔型相对应。

    1. 字符串型

    字符串型用来存储字符串数据,它是一个字符序列, 由字母、 数字、符号和文字等组成。 在 VBA 中, 字符串类型分为定长字符串型和变长字符串型两种。

    用户定义字符串时, 需要用双引号把字符串引起来, 而双引号并不算在字符串中。 例如, "book"、 " 员工信息表 " 和 ""(空白字符串) 等, 都表示字符串型数据。

    具体来说, 定义字符串型数据的方法如下。

    Dim str1 as String

    这表示, 声明一个名为 str1 的字符串型变量。对于定长字符串的定义,可以使用"String*Size" 的方式。 例如:

    Dim str2 as String*12

    2. 数值数据型

    数值数据型是可以进行数学计算的数据, 在 VBA 中, 数值数据型分为字节、 整型、 长整型、 单精度浮点型和双精度浮点型。

    其中, 整型和长整型数据是不带小数点和指数符号的数。 例如:

    • 111、 -189、 222% 均表示整型数据。
    • 111&、 -189& 均表示长整型数据。

    单精度浮点型和双精度浮点型数据是带有小数部分的数。 例如:

    • 111 !、 -189.75、 0.111E+3 均表示单精度浮点型数据。
    • 111#、 -189.75#、 0.111E+3#、0.111D+3 均 表 示 双 精 度 浮 点 型数据。

    在 VBA 中, 定义整型数据变量有两种方法: 一种是直接使用 Integer关键字, 类似前文中定义字符串型变量的方法; 另一种是直接在变量的后面添加一个百分比符号(%)。 例如:

    Dim a1 as IntegerDim a2%

    以上定义的 a1 和 a2 都是整型数据变量。

    技术看板

    定义其他数值数据类型的方法与定义整型数据变量的方法类似, 只是后面的类型标识符不一样。

    3. 日期型

    日期型数据用来表示日期和时间信息, 在存储时, 日期型数据的整数部分被存储为日期值, 小数部分被存储为时间值。

    用户定义时间类型数据时, 需要用井号(#) 把日期和时间括起来。例如:

    #August 5,2018#、 #2018/12/25#、#2018-12-25 15:25:30# 等,均是表示日期型数据。

    定义日期型数据的方法如下。

    Dim aa as date

    技术看板

    在 Access 中, 可以使用 Now() 函数来提取当前时间, 使用 Date() 函数来提取当前日期。

    4. 货币型

    货币型是为了表示货币而设置的, 此类数据以 8 字节进行存储, 并精确到小数点后4位,小数点前15位,而小数点后 4 位的数字都将被舍去。

    定义货币型数据的方法如下。

    Dim cost as currency

    5. 布尔型

    布尔型是用于逻辑判断的数据类型, 其值为逻辑值。 布尔型数据只有True(真) 或 False(假) 两个值。

    定义布尔型数据的方法如下。

    Dim c as a Boolean

    技术看板

    将布尔数据转换为整型时, True转换为 -1, False 转换为 0。 当将其他类型数据转换为布尔型数据时, 非 0数据转换为 True, 0 转换为 False。

    6. 变体型

    当用户在编写 VBA 时, 如果没有定义某个变量的数据类型, 那么系统会自动将这个变量定义为变体型。如果以后调用这个数据, 就可以根据需要改变为不同的数据类型。

    变体型是一种特殊的数据类型,除了定义长字符串型和用户自定义类型外, 它可以包含任何各类的数据,甚至包含 Empty、 Error、 Nothing 和 Null等特殊值。

    7. 自定义的数据类型

    除了前文中系统提供的基本数据类型外, 在 VBA 中, 用户还可以自定义数据类型。 自定义的数据类型实际是由基本数据类型构建而成的一种数据类型, 其语法格式如下。

    Type 数据类型名类型元素名 as 系统数据类型名End Type

    例如, 要定义一个名为 Lily 的用户数据类型:

    Type LilyRDnumber as LongRDname as StringRDphone as LongRDbirthday as DateEnd Type

    上文中共包含了 4 个元素。

    • RDnumber 定义了编号为长整型变量。
    • RDname 定义了姓名为字符串型变量。
    • RDphone 定 义 了 电 话 为 长 整 型变量。
    • RDbirthday 定义了生日为日期型变量。
    展开全文
  • Sheets("结果").Cells.ClearContents '清理保存数据的区域 For I = 0 To rs.Fields.Count - 1 Worksheets("结果").Cells(1, I + 1) = rs.Fields(I).Name Next Sheets("结果").Range("a2").CopyFromRecordset rs ...
    Sub 分厂家统计()
    
    
    Set cnn = CreateObject("adodb.Connection")
    Set rs = CreateObject("adodb.Recordset")
    
    cnn.Open "Provider = Microsoft.ace.Oledb.12.0;Extended Properties =TEXT;Data Source =" & ThisWorkbook.Path & "\"
    
    A = "(select  distinct 时间,厂家名称,CGI,VOLTE语音话务量 from [yy.csv] WHERE VOLTE语音话务量 IS NOT NULL  )"
    Sql = "SELECT 时间,厂家名称,COUNT(CGI) AS 小区数,SUM(VAL(VOLTE语音话务量)) AS 话务量 FROM " & A & " GROUP BY 时间,厂家名称"
    
     Set rs = cnn.Execute(Sql) '
    
      Sheets("结果").Cells.ClearContents       '清理保存数据的区域
         For I = 0 To rs.Fields.Count - 1
           Worksheets("结果").Cells(1, I + 1) = rs.Fields(I).Name
         Next
    Sheets("结果").Range("a2").CopyFromRecordset rs
    rs.Close
    cnn.Close
    Set rs = Nothing
    Set cnn = Nothing
    Worksheets("结果").Activate
    MsgBox ("OK")
    End Sub
    
    
    展开全文
  • 昨天领导开会,谈论关于运营支撑系统的报表... 会议期间领导提出可以使用VBA来实现,而领导对VBA也是了解多,而Ricki则是一点具体的概念也没有,只听说过VB,呵呵!领导说了,这份功能由他来实现,而且必须当天...
    昨天领导开会,谈论关于运营支撑系统的报表数据处理的需求问题,也就是把一张excel表中的数据复制到另外一张excel表中,人工也可以操作,为了解放这份劳动力,运营支撑部门的领导要求用程序来实现这个功能。

    会议期间领导提出可以使用VBA来实现,而领导对VBA也是了解不多,而Ricki则是一点具体的概念也没有,只听说过VB,呵呵!领导说了,这份功能由他来实现,而且必须当天内实现从一张表中取数据并复制到另外一张表中,并保存的。

    说实在,听后压力蛮大,不过领导也把他所知道的如何在excel中录制宏、执行宏、生成启动宏的工作薄一一的告诉了Ricki,听后感觉也真如领导说的那样,“so easy”,呵呵,天底下的领导都是这样的!

    话说了这么多,还是切入正题吧!

    因为没有使用过VBA,录制过程中,虽然代码是自动产生的,但也要做相应的修改。如当前需要“广州”炫铃的信息费数据,那么到另外一张表中,必须去查找“广州”这个地市在哪行,并定位到该地市的信息费在哪行哪列。

    由于有多个地市,所以必须遍历比较,使用了for和if。如:
    For Row = 9 To 29 Step 1
    If Range("B" + Row).Value = "广州" Then
    Range("AH" + Row).Select
    Exit For
    End If
    Next Row

    执行的时候,在Range("B" + Row).Value报类型不匹配。后在网上查找,发现不能用+号(虽然帮助文档说+号是连接运算符),数字和字符串连接的话只能使用&,改后如下:
    For Row = 9 To 29 Step 1
    If Range("B" & Row).Value = "广州" Then
    Range("AH" & Row).Select
    Exit For
    End If
    Next Row

    使用+号,会包“B”转为数字,然后相加。这跟Javascript不一样,如:
    <script>
    var i = 1;
    var j = "AH";
    document.write(j+i);
    document.write("<br/>");
    document.write(i+j);
    </script>
    结果:AH1
    1AH

    今天看到一篇很搞笑的文章,在此也跟大家分享一下《[url=http://hongfanshu.blogbus.com/logs/78875298.html]令人喷饭的程序注释[/url]》
    展开全文
  • ExcelVBA之数组错误

    2020-06-07 01:55:13
    如果你试图给数组成员赋予和数组声明的数据类型矛盾的数据的话,你就将在执行代码时收到“类型不匹配”的错误。要让一个数组出错不同类型的数据类型的话,你就得声明数组为Variant类型。 数组作为参数: 在子过程...
  • VBA-使用inputbox方法

    2020-03-04 13:34:04
    在前面已经将结果VBA中inputbox函数的使用,但是当输入的数据类型不匹配时,运行过程中会出现错误,为了避免这种错误,这里可以使用inputbox方法获取用户的输入。 该方法的格式为:expression.InputBox(Prompt, ...
  • 学习Excel技术,关注微信公众号:excelperfectLike运算符用于判断给定的字符串是否与指定的模式相匹配,其语法为:结果=<字符串> Like <模式>其中:1.<...数据类型为String型,可以...
  • 我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士...匹配学号部分:pattern="[N\d+-]",中括号里面的任意一个类型的字符都是匹配的对象,所以就能匹配出大写的N,数字部分,还有横杠...
  • VBA:通过数组和字典快速填充数字

    千次阅读 2019-09-12 09:52:57
    传统的做法就是做好数据处理后,通过vlookup匹配填充。稍微方便一点的是调整好格式后直接复制黏贴,但是因为不是每个代理商每个月都有这么多佣金类型的,所以可能会出错。当然用power query固定化模板后也是可以操作...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     11.1.14 确定单元格的数据类型  11.1.15 读写单元格区域  11.1.16 在单元格区域中插入值的更好方法  11.1.17 传递一维数组中的内容  11.1.18 将单元格区域传递给Variant类型的数组  11.1.19 按数值选择单元格...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
     11.1.14 确定单元格的数据类型  11.1.15 读写单元格区域  11.1.16 在单元格区域中插入值的更好方法  11.1.17 传递一维数组中的内容  11.1.18 将单元格区域传递给Variant类型的数组  11.1.19 按数值选择单元格...
  • 1:找数据源———————————————— 安装 32 位odbc驱动(与excel相匹配) ,repair 2:类型未定义 ————————————————工具-》引用-》Microsoft AcitviteX Data Objects 2.8 3:rs....
  • 1、代码目的:把相同ID的数据,合并到...transpose函数有65536的限制,当同一ID行数超过限制时,跳“类型不匹配”的错误,求大佬指点? ![图片说明](https://img-ask.csdn.net/upload/201809/19/1537336643_641881.png)
  • 前面Ricki在《[url=http://ricki.iteye.com/blog/785773]执行VBA脚本代码提示“类型不匹配”[/url]》提到最近两天在使用VBA来完成报表数据的处理。 今天,应该确切地说,是刚才,遇到一个问题。本来领导想当打开...
  • 12.1 自定义数据类型 196 12.2 管理模板 200 12.2.1 设置模板属性 200 12.2.2 设置模板权限 203 12.2.3 删除数据 203 12.2.4 删除模板 203 12.2.5 模板定义的导入导出 204 12.2.6 模板数据的初始化 207 12.3 管理...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  •  在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【工作簿一键减肥】:对工作簿减肥,损坏数据的前提下,让工作簿容量减少,从而提升开启速度。 【打印当前页】:仅仅打印当前鼠标所在页,忽略其它数据 【双面打印】:打印双面小册子专用 【打印底端标题】:将最后...
  • Excel百宝箱

    2012-10-27 17:09:21
    【工作簿一键减肥】:对工作簿减肥,损坏数据的前提下,让工作簿容量减少,从而提升开启速度。 【打印当前页】:仅仅打印当前鼠标所在页,忽略其它数据 【双面打印】:打印双面小册子专用 【打印底端标题】:将最后...
  • 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试...
  • 将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算。 函数名称:NOWW 函数功能与参数:改变的当前时间。需要参数,输入的时间表示现在的时间,但随时间改变而改变。 函数...
  • 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

vba数据类型不匹配