Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel vba中用于分配值的对象必需错误_Excel_Vba - Fatal编程技术网

Excel vba中用于分配值的对象必需错误

Excel vba中用于分配值的对象必需错误,excel,vba,Excel,Vba,在第4行,我得到一个错误,说“需要对象”。当我像这样编码时 Sub NewNightLetter() Dim NewFile As String WorkBookPath = Application.ActiveWorkbook.Path ProgramSelected = DataPuller.Home.Range("F4").Value Set mySource = MyObject.GetFolder(WorkBookPath & "\" & ProgramSelected

在第4行,我得到一个错误,说“需要对象”。当我像这样编码时

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

出现“下标超出范围”错误…您能帮忙吗?

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


ProgramSelected=workbook(“datapuller”).Sheets(“Home”).Range(“F4”).Value

假设
datapuller
Home
为字符串,其中
datapuller
指工作簿名称,
Home
指工作表名称。下面的语法将起作用

ProgramSelected=Workbooks(datapuller).Sheets(Home).Range("F4").Value
试试这个:

替换这部分代码

Dim datapuller As String
    datapuller = "Book2"

    Dim Home As String
    Home = "sheet1"

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

ProgramSelected = DataPuller.Home.Range("F4").Value
或者这是为了提高灵活性

ProgramSelected = Workbooks("DataPuller").Sheets("Home").Range("F4").Value
还请注意,DataPuller工作簿应处于打开状态。
否则,您将得到
下标超出范围的
错误

Dim ws as Worksheet

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