我是VBA的新手,但我正在尝试。
当您在工作表上按一个按钮时,我试图打开另一个Excel文件,从中获取行并将其复制到当前Excel文件中。我想让它自动化,所以您只需要按1按钮即可。
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。运行脚本时,出现“下标超出范围”“运行时错误9”。
答案 0 :(得分:0)
您可能会遇到范围不合格的问题,以下代码已对此问题进行了纠正。请尝试一下!如果这不起作用,我的猜测是您在代码中编写的工作表名称与工作簿中实际存在的工作表名称之间存在较小的不匹配。
代码也已更新为使工作表变量变暗以提高可读性,并使用更标准的最后一行(LR
)计算和循环名(i
)。
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