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
“下标超出范围”错误发生......你可以帮忙吗?
答案 0 :(得分:0)
当您按名称引用工作簿或工作表时,请用双引号将其括起来
ProgramSelected=Workbooks("datapuller").Sheets("Home").Range("F4").Value
答案 1 :(得分:0)
假设datapuller
和Home
为字符串,其中datapuller
表示工作簿名称,home
表示工作表名称。下面的语法将起作用。
Dim datapuller As String
datapuller = "Book2"
Dim Home As String
Home = "sheet1"
ProgramSelected = Workbooks(datapuller).Sheets(Home).Range("F4").Value
答案 2 :(得分: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
错误。