0

VBE デバッガーは私に与え続けます

1004 error (Application-defined or object-defined error)

オンライン "Worksheets("General").Cells(cur_index, 2).Value = cur_time"

またはセル値を実際に変更しようとする試み。

関数は、同じワークシートのセルから呼び出されます。しかし、私が入力すると?

イミディエイト ウィンドウにアクティブシートを表示しても、何も表示されません。どうしたの?

誰かがそれを修正する方法と何が問題なのか教えてもらえますか? ありがとう。

更新:これは私のコードの一部であり、コードの先頭に明示的なオプションがあります。

Function collectdata(cur_time)

Dim row_num As Integer, start_index As Integer, end_index As Integer, cur_index As Integer, col_num As Integer

row_num = 1
start_index = total_record * num_it + 21
end_index = start_index + total_record - 1

Dim rg As String
rg = "A" & start_index & ":A" & end_index

On Error GoTo err1

If cur_time > 0 And num_it < 10 Then

    cur_index = cur_time + 1200 * num_it


    Worksheets("General").Cells(cur_index, 2).Value = cur_time

    Worksheets("General").Range(rg).Value = num_it + 1

    For col_num = 3 To 12


        Worksheets("General").Cells(cur_index, col_num).Value = Cells(7, col_num).Value

    Next col_num

ElseIf cur_time = 1200 Then
    num_it = num_it + 1

End If

err1:
    Debug.Print Err.Description

End Function
4

1 に答える 1

0

これはあなたの質問に正確に答えないかもしれませんが、コードを少し修正するのを手伝いたいと思います.

Option Explicitコードの先頭に置きます。このオプションは、より「強く型付けされた」方法でコードを書くのに役立ちます。

また、num_it変数は未定義であるため、空です。この行:

cur_index = cur_time + 1200 * num_it

Turns cur_index= 0. 次に、Cells(row, column)0 の行を持つワークシートがないため、このメソッドはエラーを返します。行と列は 1 から始まります。

また、パラメータにデータ型を設定しますcur_time。たとえば、コードに文字列を渡すと、コードはエラーになります。

于 2013-02-01T15:57:56.620 に答える