我有一个函数,可以在特定的范围内找到任何粗体单词。此函数在下面的for每个循环中调用。按照当前设置的方式,如果粗体字在范围内任何地方都存在,则返回true;如果范围中不存在粗体字,则返回false。我想要做的是得到它,所以当它找到粗体字时,它就停止了,这样我就可以做一些其他的操作,然后继续下去。我正在考虑沿着这些路线做一些事情,但是它在第二行上抛出了一个错误。
dim i as range
set i = range("C11:C6000")
for each i in range("C11:C6000")
FindBoldCharacters(Range(i)) 'throws "run time error 1004 application or object defined error" here
if i = true then
'do some stuff here'
else
end if
next i下面是代码正在调用的函数
Function FindBoldCharacters(ByVal aCell As Range) As Boolean
FindBoldCharacters = IsNull(aCell.Font.Bold)
If Not FindBoldCharacters Then FindBoldCharacters = aCell.Font.Bold
End Function函数本身调用时起作用,但当我试图以这种方式调用它时,它就不能工作。我能做些什么来解决这个问题?
发布于 2015-08-25 17:55:49
正如我在评论中提到的,您的代码中有几件事情是与代码无关的。
i (如果在此循环之前未声明)将在运行时作为Range对象进行标注,而不是将其作为保存单元格地址的字符串,因为您似乎正在使用它i是Range对象时,它后来被用作Range对象。For..应该只有一个Next,如果您试图运行它,您的代码将抛出一个Next without For错误。首先,将i声明为Range对象,然后像FindBoldCharacters(i)那样将其传递到您的函数中(就像您在函数声明中表示希望aCell作为Range一样)。
其次,直接在If语句中计算函数
最后,将Next i从If语句内部移出。
就像这样:
Option Explicit
Sub Test()
Dim i As Range
For Each i In Range("C11:C6000")
If FindBoldCharacters(i) = True Then
'do some stuff here'
Else
End If
Next i
End Subhttps://stackoverflow.com/questions/32210552
复制相似问题