1

我试图在“总服务费”单元格上方获得 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

我得到了正确的答案,但我仍然得到这个错误。

4

2 回答 2

2

避免使用SELECT. 你可能想看这个

当您确定具有搜索文本的单元格后,只需检索该单元格的行并使用它。请参阅此示例(未测试)。

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怎么办?

于 2013-04-29T19:44:54.300 回答
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)
于 2013-04-29T19:47:14.267 回答