调用与活动表不同的工作簿中的工作表:错误



我需要在不同的工作簿("draft1")中调用工作表("Base"),而在我的活动工作表上工作。活动工作簿(&;草稿&;)和需要调用的工作簿都具有工作表&;base &;但我特别需要工作表的草稿。然而,下面的作品使用了"Base"工作表在活动工作表中(因为没有指定工作簿)并且不返回错误。

Set C = Worksheets("Base").Range("A1").Offset(0, i)

但是,当我使用以下命令时,我得到一个编译错误,并且宏在中途停止。两个文件都保存在同一个文件夹中,所以这应该不是问题。然而,即使当我调用工作簿的完整地址,返回同样的错误。我是否可能需要将宏转移到个人项目的事情,以便它可以使用其他工作簿?

Set C = Workbooks("draft1.xlsx").Worksheets("Base").Range("A1").Offset(0, i)

请帮忙!

编辑
下面是上面的代码片段-

Sub CreateNewMonth()
Dim i As Integer, C As Range
Application.ScreenUpdating = False
i = 1
Do While i <> 0
Set C = Worksheets("Base").Range("A1").Offset(0, i)
'Workbooks("draft1.xlsx").
If IsEmpty(C) = False Then
.
.
.
End If
Loop
End Sub

循环没有任何错误,因为它与活动表单的"Base"工作得很好。

要做到这一点:

Set C = Workbooks("draft1.xlsx").Worksheets("Base").Range("A1").Offset(0, i)

文件draft1.xlsx需要打开

或者您需要使用工作簿打开它。打开方法:

Dim wbDraft As Workbook
Set wbDraft = Application.Workbooks.Open(FileName:="C:FullPathToFiledraft1.xlsx")
Dim C As Range
Set C = wbDraft.Worksheets("Base").Range("A1").Offset(0, i)

最后您可以使用以下命令关闭工作簿:

wbDraft.Close SaveChanges:=False

请注意,编写代码的工作簿可以很容易地用ThisWorkbook寻址。

最新更新