0
Sub NewNightLetter()
Dim NewFile As String
WorkBookPath = Application.ActiveWorkbook.Path
ProgramSelected = DataPuller.Home.Range("F4").Value
Set mySource = MyObject.GetFolder(WorkBookPath & "\" & ProgramSelected)
NewFile = ProgramSelected & "_PT Metrics_" & Format(Date, YYYYMMDD) & "xlsm"
ActiveWorkbook.SaveAs (mySource & " \ " & NewFile)
End Sub

在第 4 行,我收到一条错误消息,提示“需要对象”。当我像这样编码时,

ProgramSelected=Workbooks(datapuller).Sheets(Home).Range("F4").Value

“下标超出范围”错误发生...你能帮忙吗?

4

3 回答 3

0

假设datapullerand Home作为字符串 wheredatapuller指的是工作簿名称并home指的是工作表名称。下面的语法将起作用。

Dim datapuller As String
    datapuller = "Book2"

    Dim Home As String
    Home = "sheet1"

    ProgramSelected = Workbooks(datapuller).Sheets(Home).Range("F4").Value
于 2013-10-25T05:20:26.507 回答
0

尝试这个:

替换这部分代码

ProgramSelected = DataPuller.Home.Range("F4").Value

有了这个:

ProgramSelected = Workbooks("DataPuller").Sheets("Home").Range("F4").Value

或者这可以提高灵活性。

Dim ws as Worksheet

Set ws = Workbooks("DataPuller").Sheets("Home")
ProgramSelected = ws.Range("F4").Value

还要注意 DataPuller 工作簿应该是打开的。
否则你会得到Subscript Out of Range错误。

于 2013-10-25T05:21:11.037 回答
0

当您按名称引用工作簿或工作表时,请用双引号将其括起来

ProgramSelected=Workbooks("datapuller").Sheets("Home").Range("F4").Value

于 2013-10-25T05:20:15.617 回答