我试图在“总服务费”单元格上方获得G:26到1列的总和。我遇到了运行时错误'1004'。应用程序定义或对象定义的错误。有谁知道这可能是什么?
Worksheets(1).Select
Dim rng1 As Range
Dim strSearch As String
strSearch = "Total Service Fees"
Set rng1 = Range("F15:F100").Find(strSearch, , xlValues, xlWhole)
If Not rng1 Is Nothing Then
rng1.Offset(0, 1).Select
ActiveCell.Formula = "=SUM(G26:" & ActiveCell.Offset(-1, 0).Select & ")"
Else
MsgBox strSearch & " not found"
End If
我得到正确答案,但我仍然收到此错误。
答案 0 :(得分:2)
避免使用SELECT
。您可能希望看到THIS
当您识别出具有搜索文本的单元格后,只需检索该单元格的行并使用该行。请参阅此示例(UNTESTED)。
Dim rng1 As Range
Dim strSearch As String
Dim r As Long
With Worksheets(1)
strSearch = "Total Service Fees"
Set rng1 = .Range("F15:F100").Find(strSearch, , xlValues, xlWhole)
If Not rng1 Is Nothing Then
r = rng1.Row
.Range("G" & r).Formula = "=SUM(G26:G" & r & ")"
Else
MsgBox strSearch & " not found"
End If
End With
注意:我没有做任何错误处理。你必须要照顾好这一点。例如,如果在F26
上找到搜索文本,该怎么办?
答案 1 :(得分:0)
Set rng1 = Range("F15:F100").Find(strSearch, , xlValues, xlWhole)
我认为你的问题就在这里。尝试声明工作表或将变量设置为适当的工作表。
Dim WS as Worksheet
Set WS = Activeworkbook.Sheets("Enter Sheet Name")
Set rng1 = WS.Range("F15:F100").Find(strSearch, , xlValues, xlWhole)