Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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错误1004。方法';对象范围'_全局失败_Excel_Vba - Fatal编程技术网

Excel VBA错误1004。方法';对象范围'_全局失败

Excel VBA错误1004。方法';对象范围'_全局失败,excel,vba,Excel,Vba,我曾尝试在存储库中搜索上述问题的解决方案,但我的VBA技巧还很初级,我找不到答案。任何指导都将不胜感激 运行下面的代码时,会在以下行出错: PartNumber = Range("E" & myrow).Value 代码是运行时错误“1004”: 方法“对象范围”全局失败 Dim objDrv As Object Dim strMsg As String For Each objDrv In CreateObject("Scripting.FileSystemO

我曾尝试在存储库中搜索上述问题的解决方案,但我的VBA技巧还很初级,我找不到答案。任何指导都将不胜感激

运行下面的代码时,会在以下行出错:

PartNumber = Range("E" & myrow).Value
代码是运行时错误“1004”: 方法“对象范围”全局失败

Dim objDrv      As Object
Dim strMsg      As String


For Each objDrv In CreateObject("Scripting.FileSystemObject").drives
    Select Case objDrv.DriveType
        Case 0: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": Unknown"
        Case 1: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": Removable Drive"
        Case 2: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": Hard Disk Drive"
        Case 3: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": Network Drive"
        'Case 4: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": CDROM Drive"
        Case 5: strMsg = strMsg & vbNewLine & objDrv.driveletter & ": RAM Disk Drive"
    End Select
Next

Set objDrv = Nothing
'MsgBox strMsg, vbInformation

Dim sdcard As String

sdcard = InputBox( _
"Confirm which drive you wnat to create the romdata directory in." & vbNewLine & vbNewLine & "Drives Found:" _
& strMsg & vbNewLine, _
"Choose SD Card Letter.", _
"Type your file name here")
If Len(sdcard) = 1 Then
MsgBox "You have selcted the " & sdcard & " drive."
        ElseIf Len(sdcard) >= 2 Then
    MsgBox " Too many characters"
    ElseIf Len(sdcard) <= 0 Then
End If

Dim myLoop As Integer

For myLoop = 7 To 9000

    If Len(Range("I" & myLoop).Value) > 0 Then

Dim aTemp As String
Dim bTemp As String
Dim dTemp As String
Dim eTemp As String
Dim subdir As String
Dim PartNumber As String
Dim otemp As String
Dim ptemp As String

aTemp = sdcard & Chr(58) & "\romdata\"
a1temp = sdcard & Chr(58) & "\romdata"
bTemp = strMsg
PartNumber = Range("E" & myrow).Value
otemp = PartNumber & ".fwu"
ptemp = "\" & PartNumber
dTemp = ActiveWorkbook.pATH
eTemp = "\Firmware files"
subdir = "\Firmware Files\" & PartNumber & "\" & otemp

MsgBox "The full path to this file is " & dTemp & "\" & PartNumber

If dir(dTemp & subdir) = "" Then
MsgBox "The file you have selected, (" & PartNumber & ") will not be copied." & vbNewLine & _
"Please check the file is suitable for uploading to the device using an SD card." & vbNewLine & _
"(It should have a .fwu extension.)"
Exit Sub
End If

MsgBox "The file " & otemp & " is being copied to " & aTemp

 If Len(dir(aTemp, vbDirectory)) = 0 Then
MkDir a1temp

End If


FileCopy dTemp & subdir, aTemp & otemp
Dim objDrv作为对象
作为字符串的Dim strMsg
对于CreateObject(“Scripting.FileSystemObject”).drives中的每个objDrv
选择Case objDrv.DriveType
案例0:strMsg=strMsg&vbNewLine&objDrv.driveletter&“未知”
案例1:strMsg=strMsg&vbNewLine&objDrv.driveletter&“可移动驱动器”
案例2:strMsg=strMsg&vbNewLine&objDrv.driveletter&“:硬盘驱动器”
案例3:strMsg=strMsg&vbNewLine&objDrv.driveletter&“:网络驱动器”
'案例4:strMsg=strMsg&vbNewLine&objDrv.driveletter&':CDROM驱动器'
案例5:strMsg=strMsg&vbNewLine&objDrv.driveletter&“RAM磁盘驱动器”
结束选择
下一个
设置objDrv=Nothing
'MsgBox strMsg,vbInformation
将SD卡设置为字符串
SD卡=输入框(_
“确认要在哪个驱动器上创建romdata目录。”&vbNewLine&vbNewLine&“找到的驱动器:”_
&strMsg和vbNewLine_
“选择SD卡字母。”_
“在此处键入您的文件名”)
如果Len(sdcard)=1,则
MsgBox“您已经选择了”&sdcard&“驱动器。”
ElseIf Len(sdcard)>=2然后
MsgBox“字符太多”
ElseIf Len(SD卡)0然后
将aTemp变暗为字符串
作为字符串的Dim bTemp
Dim dTemp作为字符串
作为字符串的Dim-eTemp
作为字符串的Dim subdir
将零件号设置为字符串
作为字符串的Dim-otemp
将ptemp设置为字符串
aTemp=SD卡和Chr(58)以及“\romdata\”
a1temp=SD卡和Chr(58)和“\romdata”
bTemp=strMsg
零件号=范围(“E”和myrow).值
otemp=零件号和“.fwu”
ptemp=“\”&零件号
dTemp=ActiveWorkbook.pATH
eTemp=“\Firmware files”
subdir=“\Firmware Files\”&PartNumber&“\”&otemp
MsgBox“此文件的完整路径为”&dTemp&“\”&PartNumber
如果dir(dTemp&subdir)=“”,则
MsgBox“将不会复制您选择的文件(“&PartNumber&”)。&vbNewLine&_
“请检查该文件是否适合使用SD卡上载到设备。”&vbNewLine&_
“(它应该有一个.fwu扩展名。)
出口接头
如果结束
MsgBox“文件”&otemp&“正在复制到”&aTemp
如果Len(dir(aTemp,vbDirectory))=0,则
MkDir a1temp
如果结束
文件拷贝dTemp和SubDR、aTemp和otemp

myrow
从未在您发布的代码段中定义。在使用之前先定义它。

+1看起来像是
myLoop
可能是预期的名称。如果在模块顶部添加
选项Explicit
,就会发现这一点。感谢各位的输入。Alexandre,我很高兴你能帮助我透过树林看到树林。