EXCEL VBA 下标越界如何解决?

Sub 选择文件夹()
Application.ScreenUpdating = False
Dim wb As Workbook
fl = Application.GetOpenFilename("excel Files(*.csv*),*.csv*", , "请选择文件", , True)
For i = 1 To UBound(fl)
Set wb = Workbooks.Open(fl(i))
wb.Worksheets(Worksheets1).Range("C2").Copy ThisWorkbook.Worksheets(1).Range("A10").End(3).Offset(1, 0)
wb.Close False
Next
Application.ScreenUpdating = True
End Sub
代码如下
提示 wb.Worksheets(Worksheets1).Range("C2").Copy ThisWorkbook.Worksheets(1).Range("A10").End(3).Offset(1, 0)
这一行下标越界,该怎么修改
我的目的是选择CSV文件,将CSV表1的某个单元格数据复制到宏所在.xlsm的某个单元格。
注:CSV文件名和单元表名都不确定

下标越界主要是括号里面的东西不存在,例如:

wb.Worksheets(Worksheets1).Range("C2").Copy
这个语句会导致下标越界,因为Worksheets1变量没有正确赋值,正确的写法是:
wb.Worksheets(1).Range("C2").Copy
表示第一个工作表的C2复制,或者这样写:
wb.Worksheets("sheet1").Range("C2").Copy
表示名字叫做sheet1的表的C2复制
如果要使用变量来引用,例如:
x=1

wb.Worksheets(x).Range("C2").Copy追问

你好,问一下
wb.Worksheets(Worksheets1).Range("C2").Copy ThisWorkbook.Worksheets(1).Range("E8").End(3).Offset(1, 0)
为什么结果是复制到E7了?是附近有合并的单元格吗?正确的该怎么写呢

追答

我不知道你想复制到哪里呀,建议你看看end和offset的帮助说明

温馨提示:内容为网友见解,仅供参考
无其他回答

vba在excel中的应用中,下标越界怎么回事
下标越界错误大概有以下的原因和解决方法:1.引用了不存在的数组元素。2.下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。

Excel VBA下标越界的原因分析与解决方法
下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。声明数组时没有指定元素的数目。引用了不存在的集合成员。 试着使用 For...

excel中vba提示下标超界,怎么解决?
当我们在excel的VBA中输入下面代码,运行,就会出现“运行时错误9下标越界”的提示。代码如下:Sub a()Dim arr() As String arr(1) = "你好"End Sub 其实上面的“运行时错误9下标越界”是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题...

wps表格下标越界错误
1.下标越界错误,这个是vba里面的问题,主要指你输入的命令值已经超过了它的边界值,即最值(最大最小),这个要根据具体情况具体解决:举个例子:vba中个二维数组,arr(1 to 10,1 to 10),代表他可以储存arr(x,y) (注:x取值 1到10,y取值1到10.)100个数据(或者对象);如果你让x,y取...

Excel 下标越界了,什么原因
解决方法很简单,只需在调试过程中将代码中"Sheet1"的部分替换为实际的"图表",再运行宏,就可以顺利避免下标越界问题了。尽管Excel作为一款强大的数据处理工具,其基础逻辑仍保留了早期VisiCalc的单元格结构,即数据和引用保存在行列的单元格中。因此,在编写与工作表相关操作的代码时,确保引用的准确是...

如何让下标越界的代码运行起来!
1、在SHEET表内设置好按钮,并指定到宏。2、在VBA编辑器内输入如下的代码。(此代码的含义为遍布区域内的单元格,如果为空格,则隐藏空格所在的整列。3、在运行过程中出现了问题,下标越界,无法运行。4、在代码中的“SHEET1”工作表根本没有,因为SHEET表的标签名称为“图表”,因此代码运行时找不到...

excel下标越界是什么意思?
用Redim界定一下维数和尺寸即可解决此问题。运行时错误9下标越界是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。Excel提示下标越界是VBA程序运行的一个错误提示,原因有以下几个:1、引用了不存在的数组元素:下标比可能下标范围大或小,或...

VBA把excel备份至SQL或者实现数据交换 提示下标越界 重金悬赏大神解决...
1、你的表格首先没有标定的唯一行(也就是数据库表中的键值),因此不管是哪个操作者任意更新一行或增加(删除)一行(或修改一行中某元的内容)形成新的数据表格后,在数据库中是很难界定的(这一点不知道您是否理解!)。如果没有唯一(键值)来约束的话,只能按顺序的方式来从数据库中下载内容到...

Excel 请问如何修改解决下标越界的问题
下标越界这个是VBA里面的问题,主要指你输入的命令值已经超过了它的边界值即最值(最大最小)这个要根据具体情况具体解决:举个例子:VBA中个二维数组,arr(1 to 10,1 to 10),代表他可以储存arr(x,y) (注: x取值 1到10,y取值1到10.)100个数据(或者对象);如果你让x,y取了其他值,...

excelVBA菜鸟,运行时下标越界。。。求高手解释。
未声明数组维数下标,应该重新声明数组,用ReDim语句;代码中使用“[ ]”错误,中括号是代表区域引用的,这里改变运算顺序应使用小括号;还有,我没看出你的n值是什么。

相似回答