求助!帮忙指出下面宏的错误
vb吧
全部回复
仅看楼主
level 3
mp3_517 楼主
Dim t As Double
t = Now
Dim m, n, o As Integer
m = Sheet6.Range("c51") & t
o = 45292
n = Sheet6.Range("c51") & o
Sheet6.Cells(4, 1) = m
Sheet6.Cells(5, 1) = o
End Sub
运行宏时,显示:运行时错误“6”溢出。
请教大佬如何修改,谢谢!
2024年10月28日 06点10分 1
level 9
o是integer,最大值是32767,所以你溢出了。
2024年10月28日 08点10分 2
level 1
可能integer数据类型范围超出了,-32768~32767之间。你把o的数据缩小一点试一下。
2024年10月28日 08点10分 4
level 15
VBA的整数类型规则与VB6相同,Integer是16位的,想用32位的整数需要用Long类型,另外VBA似乎不支持64位整数?
2024年10月28日 10点10分 5
level 5
解决不了可以找我
2024年10月28日 12点10分 6
吧务
level 12
Dim m, n, o As Integer 需要改成 Dim m As Integer, n As Integer, o As Integer
2024年10月28日 12点10分 7
那样更错了,楼主本来就没想把m和n定义成整型,就算单元格C51是个数字,楼主想用字符串连接的方式拼出一个长整数,但是o自己都溢出了,再增加位数不是更溢出了么
2024年10月28日 13点10分
@初音✨七奈 也不好说是想拼长整数。45292也是个时间,24年1月1日。拼成长整数对他应该没啥用,字符串才好吧。然后,t是double,用了&后变成很长的还没用的字符串。。。
2024年10月29日 05点10分
@klimaa 我也倾向于是拼字符串,所以m和n应该定义成String最合适,不过把日期转换成对应的内部数值不清楚是什么操作
2024年10月29日 11点10分
吧务
level 12
Dim m As Integer, n As Integer, o As Long
2024年10月29日 01点10分 8
吧务
level 12
AI 给你建议了这样的代码
Dim nowTime As Double
nowTime = Now
Dim combinedText1 As String
Dim combinedText2 As String
Dim setNumber As Integer
setNumber = 45292
combinedText1 = Sheet6.Range("C51").Value & Format(nowTime, "yyyy-mm-dd hh:mm:ss")
combinedText2 = Sheet6.Range("C51").Value & setNumber
Sheet6.Cells(4, 1).Value = combinedText1
Sheet6.Cells(5, 1).Value = setNumber
代码的 base64
RGltIG5vd1RpbWUgQXMgRG91YmxlCm5vd1RpbWUgPSBOb3cKCkRpbSBjb21iaW5lZFRleHQxIEFzIFN0cmluZwpEaW0gY29tYmluZWRUZXh0MiBBcyBTdHJpbmcKRGltIHNldE51bWJlciBBcyBJbnRlZ2VyCgpzZXROdW1iZXIgPSA0NTI5MgoKY29tYmluZWRUZXh0MSA9IFNoZWV0Ni5SYW5nZSgiQzUxIikuVmFsdWUgJiBGb3JtYXQobm93VGltZSwgInl5eXktbW0tZGQgaGg6bW06c3MiKQpjb21iaW5lZFRleHQyID0gU2hlZXQ2LlJhbmdlKCJDNTEiKS5WYWx1ZSAmIHNldE51bWJlcgoKU2hlZXQ2LkNlbGxzKDQsIDEpLlZhbHVlID0gY29tYmluZWRUZXh0MQpTaGVldDYuQ2VsbHMoNSwgMSkuVmFsdWUgPSBzZXROdW1iZXI=
2024年10月30日 01点10分 9
AI水平不会这么高吧,要么是你给的关键词很高明。
2024年10月30日 05点10分
@klimaa 谢谢
2024年10月31日 03点10分
1