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 に答える