Excel Range.Find方法找不到公式的结果

时间:2017-04-24 12:38:32

标签: excel vba excel-vba find

我有这种情况(例如)

Charachter / Type / ID
MickeyMouse / Mouse / 1
唐纳德/鸭/ 2
高飞/狗/ 3

我在excel表格中输入了10条休闲行(仅限黑色文字)

my table

然后我创建了一个按钮及其宏

Dim Typ As String, Short1 As String
Dim ID As Integer, Letters As Integer
Dim C_row As Integer, T_row As Integer, ID_row As Integer
Dim S_row As Integer, L_row As Integer

Dim scx As Worksheet
Set scx = Sheets("my_sheet")

Dim myFormula1, myFormula2 As String

myFormula1 = "=LEFT(A2,3)"
myFormula2 = "=LEN(A2)"

scx.Range("D2:D" & 11).formula = myFormula1
scx.Range("E2:E" & 11).formula = myFormula2

此宏正确填充红色的2列。请注意,键入黑色文本/数字,红色文本/数字是某些公式的结果。

然后,我想添加一些行并尝试使用Range.Find方法,以查找包含单元格中特定值的第一行

'values to be searched (first row)
Typ = "Mouse" 'in column B
ID = 2 'in column C
Short1 = "Goo" ' in column D
Letters = 11 ' in column E

T_row = scx.Range("B:B").Find(what:=Typ, after:=scx.Range("B1")).Row 'search a text value
ID_row = scx.Range("C:C").Find(what:=ID, after:=scx.Range("C1")).Row 'search a numerical value

MsgBox T_row
MsgBox ID_row

正确找到T_row和ID_row值(2和4)。 但我还要检索第一行,其中“Goo”出现在文本中,第一行出现数字11。所以我写了

S_row = scx.Range("D:D").Find(what:=Short1, after:=scx.Range("D1")).Row 'search a text result of a formula
L_row = scx.Range("E:E").Find(what:=Letters, after:=scx.Range("E1")).Row 'search a numerical result of a formula

MsgBox S_row
MsgBox L_row

但宏失败并发生错误91。显然是因为值没有输入而是计算出来。 我尝试在Find方法中添加一些选项,例如LookIn:=Formulas,但没有任何附加内容。

这种方法应该如何工作? 只能找到键入的值吗?

提前谢谢

0 个答案:

没有答案