gpt4 book ai didi

vba - 看不到什么 "subscript out of range"

转载 作者:行者123 更新时间:2023-12-04 22:01:53 25 4
gpt4 key购买 nike

我正在尝试在 Excel 中的 VBA 中创建一个宏,以将一个工作表的内容复制到另一个工作表(最终将升级为将内容从一个工作簿复制到另一个工作簿,但需要先证明这个概念)但我一直遇到运行时错误'9':“下标超出范围”。问题是,我看不到突出显示的行的哪一部分可能超出范围。

我正在使用一个名为“MetaTesting”的工作簿,它有 3 个工作表,以下代码从 A1 开始,并且只会向上递增。我以前能够引用这两个工作表以便能够跨单行进行复制,所以我知道问题不存在。这是调试器突出显示的第四行文本(以“Do While Trim(Application...”开头的行)。

注意:编辑以考虑文件扩展名(如评论中所建议)。仍然抛出相同的错误,但现在它被抛出在第 11 行(在第一条评论下)

Private Sub CommandButton21_Click()

Dim i As Integer, j As Integer, k As Integer
i = 1

Do While Trim(Application.Workbooks("MetaTesting.xlsm").Worksheets(3).Cells(i, 1).Value) <> ""
j = 1
Do While Trim(Application.Workbooks("MetaTesting.xlsm").Worksheets(3).Cells(1, j).Value) <> ""

'Copy cell data from one sheet to the other
Application.Workbooks("MetaTesting.xlsm").Worksheets(1).Cells(i, j).Value = Application.Workbooks("MetaTesting.xlms").Worksheets(3).Cells(i, j).Value

j = j + 1
Loop

'Copy formatting of previous row and paste it on current row. Starts at row 3, copying formatting from row 2
If i > 2 Then
k = i - 1
Application.Workbooks("MetaTesting.xlsm").Worksheets(1).Cells(k, j).Copy
Application.Workbooks("MetaTesting.xlsm").Worksheets(1).Range(Cells(i, 1), Cells(i, j)).PasteSpecial Paste:=xlPasteFormats
End If

i = i + 1
Loop

End Sub

任何和所有的帮助表示赞赏。

最佳答案

您可以在没有所有循环的情况下执行此操作,只需复制整个工作表 - 复制功能将为您处理跳过空白区域。

Workbooks("MetaTesting").Worksheets(1).Cells.Copy
Workbooks("MetaTesting").Worksheets(2).Cells.PasteSpecial xlPasteValues

要仅复制一个单元格 block :
Workbooks("MetaTesting").Worksheets(1).Range("A1:M100").Copy
Workbooks("MetaTesting").Worksheets(2).Range("F12").PasteSpecial xlPasteValues ' this is the top-left corner of the paste, it'll fill in the rest

关于vba - 看不到什么 "subscript out of range",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com