Excel 提示json未定义如何解决变量,怎么解决

查看: 1692|回复: 8
关于VBA变量未定义的问题
阅读权限30
在线时间 小时
& & & & & & & &
12121.gif (41.48 KB, 下载次数: 0)
17:49 上传
Sub 汇总()
& & With Sheets(&号码&)
& && &&&r = .[a65536].End(3).Row
& && &&&arr = .[a1].Resize(r)
& && &&&ReDim brr(1 To UBound(arr) * 11, 1 To 1)
& && &&&For i = 1 To UBound(arr)
& && &&&brr(i * 11 - 10, 1) = arr(i, 1) & &1&
& && &&&brr(i * 11 - 9, 1) = arr(i, 1) & &2&
& && &&&brr(i * 11 - 8, 1) = arr(i, 1) & &3&
& && &&&brr(i * 11 - 7, 1) = arr(i, 1) & &4&
& && &&&brr(i * 11 - 6, 1) = arr(i, 1) & &5&
& && &&&brr(i * 11 - 5, 1) = arr(i, 1) & &6&
& && &&&brr(i * 11 - 4, 1) = arr(i, 1) & &7&
& && &&&brr(i * 11 - 3, 1) = arr(i, 1) & &8&
& && && && & brr(i * 11 - 2, 1) = arr(i, 1) & &9&
& && && && &brr(i * 11 - 1, 1) = arr(i, 1) & &10&
& && && && &brr(i * 11, 1) = arr(i, 1) & &11&
& && &&&Next
& && & Sheets(&汇总&).[a1].Resize(65536).ClearContents
& && &&&Sheets(&汇总&).[a1].Resize(UBound(brr)) = brr
& & End With
End Sub& && && && &请教高手我用的时候一直说变量未定义,我想请问怎么定义不会报错。
阅读权限70
在线时间 小时
没附件只好猜哈
估计设置了强制声明变量,或者模块顶端有option exlicit 语句。
阅读权限70
在线时间 小时
本帖最后由 zhouzhongchi 于
18:41 编辑
缺少数组声明
没有dim如何redim
阅读权限30
在线时间 小时
zhouzhongchi 发表于
缺少数组声明
要是该定义&&如何定义
阅读权限30
在线时间 小时
(19.33 KB, 下载次数: 18)
19:50 上传
点击文件名下载附件
例子以添加。请帮忙修改下,点击汇总按钮时报错
阅读权限20
在线时间 小时
本来想帮你,不过下载下来看后发现你水平比我高多了
阅读权限20
在线时间 小时
‘Dim arr() 去掉声明
阅读权限70
在线时间 小时
Sub 生成指令()
Dim brr'放这里,错放with...end with结构里了
& & With Sheets(&号码&)
& && &&&r = .[a65536].End(3).Row
& && &&&arr = .[a1].Resize(r)
& && &&&ReDim brr(1 To UBound(arr) * 3, 1 To 1)
& && &&&For i = 1 To UBound(arr)
& && && && &brr(i * 3 - 2, 1) = arr(i, 1) & &,& & &hehe&
& && && &brr(i * 3 - 1, 1) = arr(i, 1) & &,& & &name&
& && && && &brr(i * 3, 1) = arr(i, 1) & &,& & &over&
& && &&&Next
& && &&&Sheets(&汇总&).[a1].Resize(65536).ClearContents
& && &&&Sheets(&汇总&).[a1].Resize(UBound(brr)) = brr
& & End With
谢谢,你的指导。
阅读权限95
在线时间 小时
本帖最后由 香川群子 于
13:57 编辑
timenihaihaoma 发表于
例子以添加。请帮忙修改下,点击汇总按钮时报错
r = .[a65536].End(3).Row
arr = .[a1].Resize(r)
楼主问题是VBA初学者最常见的问题。
蓝色Dim 语句的目的是要把arr定义为数组型变量……从目的来讲似乎没错。
但需要注意的是,这样定义的数组变量arr,只允许在VBA代码中用循环方式进行数组逐个元素的赋值,如:
Redim arr(1 To 10)
For i = 1 To 10
&&arr(i) = i
但是,VBA中绝不允许直接把工作表区域中的数据作为二维数组赋值给【数组变量】。
只允许把工作表区域中的数据作为二维数组赋值给Variant可变变量。
这一点,新手初学者特别容易混淆。
因为他们认为,我需要的是数组(工作表区域二维数组)结果,所以应该定义为数组变量。
但微软VBA工程师规定了:工作表区域二维数组)结果只能作为Variant可变变量使用。
所以,你没有办法进行这样错误的操作:
① Dim arr()&&'错误地定义为数组变量了。(根据自己的使用目的、而不是遵循微软VBA工程师的要求)
② arr = Range().Value&&'【工作表区域数据赋值给变量。这里.Value往往可以省略】
而只能是:
① Dim arr& & '定义为可变变量就对了
② arr = Range().Value&&'工作表区域数据赋值给可变变量,是正确的。
如果没有强制申明变量,即模块顶端没有Option Explicit,则Dim arr是不必要的。
因为微软工程师为了方便大家写代码,允许变量进行隐式申明:
即,无需Dim申明变量即可在任意位置直接使用字符串作为可变变量使用,
并且会在你第1次使用该变量时根据环境决定最适当的变量类型。
…………总之,在很多情况下,尤其对于初学者来说,不用Dim申明变量反而更容易、更好!!!
因此,事实上你可以直接:、
① arr = Range()&&'工作表区域数据直接赋值给变量即可,这样一定是正确的。
还有其它方法,但是很麻烦,比如:
① Dim arr()& & '仍定义为数组变量
② m = Range().Rows.Count
& & n&&= Range().Columns.Count
③ Redim arr(1 To m, 1 To n)
④ For i = 1 To m
& && & For j = 1 To n
& && && &arr(i, j) = Range()(i,j)
& && & Next
这样也是可以的,但很麻烦对不对!
所以总结一下:
arr = Range()&&'工作表区域数据直接赋值给可变变量arr即可,这样一定是正确的。
无需Dim (或只能Dim arr 或 Dim arr As Variant&&绝对不可以 Dim arr()
非常感谢,耐心的讲解。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 445|回复: 6
高手指点下:错误提示:变量未定义
阅读权限20
在线时间 小时
100以内的正奇数按1 3 5 7……的顺序写在A列的单元格里
Sub jishu()
& & Dim i As Integer
& & xrow = 1
& & For i = 1 To 100 Step 2
& & Cells(xrow, &A&).Value = i
xrow = xrow + 1
谁帮看下那里有错误,运行不了!
错误提示:变量未定义
阅读权限30
在线时间 小时
去掉最最最上面的Option Explicit
阅读权限20
在线时间 小时
本帖最后由 dfdfsfds 于
11:41 编辑
&A&没定义吧?如果你是要表示A列,应该用range
或者cells(1,变量)
阅读权限95
在线时间 小时
Dim xrow As Integer复制代码
阅读权限10
在线时间 小时
把100改成99就可以了不是吗
不然的话会一直循环,因为i不会等于100,for...next语句不会停止
阅读权限20
在线时间 小时
xrow 没有定义
阅读权限90
在线时间 小时
Sub jishu()
& & Dim i%, xrow%
& & xrow = 1
& & For i = 1 To 100 Step 2
& & Cells(xrow, &A&).Value = i
xrow = xrow + 1
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 未定义函数或变量 的文章

 

随机推荐