Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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-范围:“范围”;运行时错误';91';_Excel_Range_Vba - Fatal编程技术网

Excel VBA-范围:“范围”;运行时错误';91';

Excel VBA-范围:“范围”;运行时错误';91';,excel,range,vba,Excel,Range,Vba,如果工作簿未保存、关闭和重新打开, 我得到以下错误 运行时错误“91”:对象变量或未设置块 我在其他地方有完全相同的代码(只是字符串的名称不同),有时它会给我相同的错误,直到我保存关闭并重新打开并重新运行。之后,代码运行顺利 有没有关于如何避免这个错误的想法?你以前有过这个问题吗 Dim fal As Excel.Worksheet Set fal = wb.Sheets("Falancs") Dim x As String x = "F_1 =" Dim cc As Integer ' T

如果工作簿未保存、关闭和重新打开, 我得到以下错误

运行时错误“91”:对象变量或未设置块

我在其他地方有完全相同的代码(只是字符串的名称不同),有时它会给我相同的错误,直到我保存关闭并重新打开并重新运行。之后,代码运行顺利

有没有关于如何避免这个错误的想法?你以前有过这个问题吗

Dim fal As Excel.Worksheet
Set fal = wb.Sheets("Falancs")

Dim x As String
x = "F_1 ="

Dim cc As Integer ' The column as an integer (cc = 1,2,3...)
cc = fal.UsedRange.Find(x).Column

错误在最后一行,其中“(x)”是…

。如果未找到
x
的值,则Find
返回
Nothing
,因此您应该检查它:

Dim fal As Excel.Worksheet
Set fal = wb.Sheets("Falancs")

Dim x As String
x = "F_1 ="

Dim cc As Integer ' The column as an integer (cc = 1,2,3...)
Dim res As Range

Set res = fal.UsedRange.Find(x)
If Not res Is Nothing Then
    cc = res.Column
Else
    MsgBox "Value " & x & " not found"
    Exit Sub
End If

wb
指的是什么?当未找到
x
的值时,应添加大小写检查:1)
Dim res as Range
2)
set res=fal.UsedRange.Find(x)
3)
如果不是res,则cc=res.Column
它指的是“本工作簿”