-
ACCESS 数据库 vba 数据类型不匹配
2019-05-16 10:57:24 一直提醒类型不匹配 求解 -
java数据类型不匹配错误,Excel-VBA和xlwings UDF类型不匹配错误
2021-03-30 08:16:41当我尝试从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 inner join 数据类型不匹配_VBA中常用的这7种数据类型,你都get到了吗?
2020-11-21 10:06:53在Access中,我们通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立数据库管理系统。...在进入 VBA 编程之前, 首先需要了解VBA 支持的数据类型,因为不同的数据类型有着不同的存储方...在Access中,我们通过创建表、查询、窗体、报表、页、宏等对象,可以将数据整合在一起,快速建立数据库管理系统。但是通过这些对象创建的数据管理系统有一定的局限性,无法实现复杂的数据管理。
而VBA则可以对Access的数据管理功能进行扩展,使开发出来的系统更具灵活性和自主性,可以完成一些无法实现的功能。
在进入 VBA 编程之前, 首先需要了解VBA 支持的数据类型,因为不同的数据类型有着不同的存储方式和数据结构。如果不指定数据类型,VBA会默认将其作为变体型 Variant,此类型可以根据实际需要自动转换成相应的其他数据类型。
但是, 让 VBA 自动转换数据类型会使程序的执行效率降低, 所以在编写 VBA 代码时, 必须定义好数据类型, 选择占用字节最少、 又能很好地处理数据的类型, 才能保证程序运行更快。
VBA 支持的数据类型主要有字符串型、 数值型、 日期型、 货币型等。除了这些内置的数据类型外, 用户还可以自定义数据类型。下表中列出了常用的数据类型供用户参考。
技术看板
在 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 定义了生日为日期型变量。
-
VBA+ADO对某一含有字符多行和空值的字段求和(解决标准数据类型不匹配问题)
2019-11-01 09:58:47Sheets("结果").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脚本代码提示“类型不匹配”
2010-10-15 14:53:15昨天领导开会,谈论关于运营支撑系统的报表... 会议期间领导提出可以使用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, ... -
sqlserver里like的空字符不包含null_VBA专题04:Like运算符详解
2020-12-14 15:49:44学习Excel技术,关注微信公众号:excelperfectLike运算符用于判断给定的字符串是否与指定的模式相匹配,其语法为:结果=<字符串> Like <模式>其中:1.<...数据类型为String型,可以... -
vba 正则表达式_VBA中正则表达式与数组结合的应用案例!
2020-12-14 16:46:28我的目标:让中国的大学生走出校门的那一刻就已经具备这些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:1611.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:3811.1.14 确定单元格的数据类型 11.1.15 读写单元格区域 11.1.16 在单元格区域中插入值的更好方法 11.1.17 传递一维数组中的内容 11.1.18 将单元格区域传递给Variant类型的数组 11.1.19 按数值选择单元格... -
vba 自动导入excel报表遇到的问题及解决方法
2015-11-16 09:06:561:找不到数据源———————————————— 安装 32 位odbc驱动(与excel相匹配) ,repair 2:类型未定义 ————————————————工具-》引用-》Microsoft AcitviteX Data Objects 2.8 3:rs.... -
初学VBA,发现transpose存在限制,跪求大佬帮忙
2018-09-19 06:01:081、代码目的:把相同ID的数据,合并到...transpose函数有65536的限制,当同一ID行数超过限制时,跳“类型不匹配”的错误,求大佬指点?  -
另存为启动宏的工作薄导致数据出错
2010-10-15 16:51:51前面Ricki在《[url=http://ricki.iteye.com/blog/785773]执行VBA脚本代码提示“类型不匹配”[/url]》提到最近两天在使用VBA来完成报表数据的处理。 今天,应该确切地说,是刚才,遇到一个问题。本来领导想当打开... -
勤哲excel服务器2010教程
2018-10-01 22:47:0212.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 管理... -
Excel2007图表完全剖析 8/8
2012-04-01 10:28:28在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 5/8
2012-04-01 10:11:02在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 7/8
2012-04-01 10:23:55在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 6/8
2012-04-01 10:16:46在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 4/8
2012-04-01 10:03:09在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 3/8
2012-04-01 09:55:17在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 2/8
2012-04-01 09:47:25在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel2007图表完全剖析 1/8
2012-04-01 09:42:20在Excel 2007中,Microsoft重写了15年来未曾更新的图表引擎,但如果选择的图表类型不正确,将无助于传递要表达的信息。鉴于此,本书将介绍Excel 2007中全新的图表制作界面,更重要的是,将引导读者选择正确的图表... -
Excel百宝箱9.0无限制破解版
2012-02-03 19:05:29【工作簿一键减肥】:对工作簿减肥,不损坏数据的前提下,让工作簿容量减少,从而提升开启速度。 【打印当前页】:仅仅打印当前鼠标所在页,忽略其它数据 【双面打印】:打印双面小册子专用 【打印底端标题】:将最后... -
Excel百宝箱
2012-10-27 17:09:21【工作簿一键减肥】:对工作簿减肥,不损坏数据的前提下,让工作簿容量减少,从而提升开启速度。 【打印当前页】:仅仅打印当前鼠标所在页,忽略其它数据 【双面打印】:打印双面小册子专用 【打印底端标题】:将最后... -
Access 2000数据库系统设计(PDF)---001
2006-02-23 15:31:041044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试... -
-
Excel百宝箱9.0无限制破解版.rar
2012-09-05 09:31:51将1/2类型的数字换算成1.5类型数据后再求和;若为12则按12计算,若为1/2则按1.5计算。 函数名称:NOWW 函数功能与参数:不改变的当前时间。不需要参数,输入的时间表示现在的时间,但不随时间改变而改变。 函数... -
Access 2000数据库系统设计(PDF)---031
2006-02-23 15:31:041487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....