我很抱歉,我确信我忽略了一些简单的事情,但是时间太长了,我无法弄清楚为什么我无法将标题为MAIN
的工作表作为参数传递给我的{{{ 1}}以下程序。 MAIN是工作簿中的工作表。
我的目标是建立一个名为Import
的通用过程,我可以在同一个工作簿中传递任何工作表,并通过简单地将工作表名称作为参数参数传递,轻松地将下面的列单元格关系存储到数组中。 / p>
Import
答案 0 :(得分:2)
@ Rory的问题的答案很重要。
在您的代码中,您有:
Sub Import(sheetname As Worksheet)
For Each oSheet in oWorkbook
Import oSheet
Next
另一方面,如果你想这样调用导入:
strSheet = InputBox("Type the name of the sheet to import")
Import strSheet
然后你的代码必须是这样的:
Sub Import(sheetname As String)
Dim oSheet as Worksheet
Set oSheet = Sheets(sheetname)
答案 1 :(得分:1)
您必须先检查调用例程:
Sub ROUTINE()
Dim ws As Worksheet
Set ws = Sheets("MAIN")
Call import(ws)
End Sub
是必需的。以下肯定会失败:
Sub NotVeryGood()
Dim ws As String
ws = "MAIN"
Call import(ws)
End Sub
(您的导入需要对象而不是对象的名称)
答案 2 :(得分:1)
以下是如何传递工作表的简单示例
Sub Main()
GetName ThisWorkbook.Worksheets(1)
End Sub
Function GetName(wb As Worksheet)
MsgBox wb.Name
End Function