我有这种情况(例如)
Charachter / Type / ID
MickeyMouse / Mouse / 1
唐纳德/鸭/ 2
高飞/狗/ 3
我在excel表格中输入了10条休闲行(仅限黑色文字)
然后我创建了一个按钮及其宏
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
,但没有任何附加内容。
这种方法应该如何工作? 只能找到键入的值吗?
提前谢谢