[英]Subscript out of range error for subroutine
我正在尝试在不同的工作簿之间复制数据。 由于用户可以选择文件名,因此工作簿的名称偶然是随机的,因此我在代码中做了一组工作簿。 当我在程序中包含子例程时,它说明下标超出范围。
关于如何确保子例程继续理解我对工作簿的定义的任何想法?
如果您不太了解第一个子句的基本原理,则会简化我的代码:
Option Explicit
Sub testwe()
Dim wb As Workbook, wb2 As Workbook, vFile As Variant
Set wb = ActiveWorkbook
vFile = Application.GetOpenFilename("Excel-files,*.xls", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
Set wb2 = ActiveWorkbook 'set the opened file as wb2
Call test123
End Sub
sub test123()
wb.Worksheets("Sheet1").Range("A1") = wb2.Worksheets("Sheet1").Range("B1")
End Sub
您需要使wb和wb2 Global:
Dim wb As Workbook, wb2 As Workbook
Sub testwe()
Set wb = ActiveWorkbook
vFile = Application.GetOpenFilename("Excel-files,*.xls", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
Set wb2 = ActiveWorkbook 'set the opened file as wb2
Call test123
End Sub
Sub test123()
wb.Sheets("Sheet1").Range("A1") = wb2.Sheets("Sheet1").Range("B1")
End Sub
编辑#1 :
此版本使用道格的建议:
Sub testwe()
Dim wb As Workbook, wb2 As Workbook
Set wb = ActiveWorkbook
vFile = Application.GetOpenFilename("Excel-files,*.xls", _
1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
Workbooks.Open vFile
Set wb2 = ActiveWorkbook 'set the opened file as wb2
Call test123(wb, wb2)
End Sub
Sub test123(wb As Workbook, wb2 As Workbook)
wb.Sheets("Sheet1").Range("A1") = wb2.Sheets("Sheet1").Range("B1")
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.