首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA使用for循环创建Subscript错误

Excel VBA使用for循环创建Subscript错误
EN

Stack Overflow用户
提问于 2018-12-06 01:54:14
回答 1查看 55关注 0票数 2

我是VBA的新手,但我正在尝试。

我正在尝试当您按下工作表上的按钮时,打开另一个Excel文件,从中获取行,并将其复制到我当前的Excel文件中。我希望这是自动化的,所以你只需要按下一个按钮。

代码语言:javascript
复制
Private Sub CommandButton1_Click()
    Dim src As Workbook
    Set src = Workbooks.Open("C:\Users\gregg\Downloads\download.xls", True, True)

    Dim iTotalRows As Integer
    iTotalRows = src.Worksheets("download").Range("B1:B" & Cells(Rows.Count, "B").End(xlUp).Row).Rows.Count

    Dim iCnt As Integer
    For iCnt = 1 To iTotalRows
        Worksheets("Elszamolas").Range("B" & iCnt).Formula = src.Worksheets("download").Range("B" & iCnt).Formula
    Next iCnt
End Sub

这就是我目前所拥有的。我想复制从文件下载表下载到文件napiElszamolas表Elszamolas。当我运行脚本时,我得到"Subscript out of range“" run -time error 9”。

EN

回答 1

Stack Overflow用户

发布于 2018-12-06 02:34:17

您可能会遇到不合格范围的问题,已在以下代码中对其进行了更正。请试一试!如果这不起作用,我猜测您在代码中编写的工作表名称与工作簿中实际存在的工作表名称之间存在微小的不匹配。

代码还更新为模糊工作表变量以提高可读性,使用更标准的最后一行(LR)计算和循环名称(i)。

代码语言:javascript
复制
Option Explicit

Private Sub CommandButton1_Click()

Dim src As Workbook: Set src = Workbooks.Open("C:\Users\gregg\Downloads\download.xls", True, True)
Dim DL As Worksheet: Set DL = src.Sheets("download")
Dim EZ As Worksheet: Set EZ = src.Sheets("Elszamolas")

Dim i As Long

For i = 1 To DL.Range("B" & DL.Rows.Count).End(xlUp).Row
    EZ.Range("B" & i).Formula = DL.Range("B" & i).Formula
Next i

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53638085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档