2014-03-13 147 views
0

如果不保存工作簿和关闭并重新打开, 我收到以下错误VBA - 范围:“运行时错误‘91’

”运行时错误‘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)” 是...

+0

'wb'指的是什么? – Kapol

+0

如果没有找到'x'的值,你应该添加检查:1)'Dim res as Range' 2)'set res = fal.UsedRange.Find(x)'3)'如果不是res就是Nothing然后cc = res.Column' –

+0

它是指“ThisWorkbook” – Trenera

回答

1

.Find回报Nothing如果没有找到的x值,所以你应该检查一下:

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 
+1

今天再次 - 谢谢! 我会在5分钟内接受它。 – Trenera

+0

欢迎您:) –