Aplikasi dan Object Defined Runtime Error 1004 - gunakan untuk loop untuk mengisi Cell (x, y)

2

Saya menggunakan kode di bawah ini untuk mencoba dan menemukan titik potong dari Var1 dan Var2, dan mengisi nilai ke dalam bentuk pengguna yang saya jalankan.

Saya tidak punya masalah menemukan persimpangan, tetapi setiap kali saya mencoba dan mengatur nilainya, saya mendapatkan kesalahan runtime 1004. Adakah yang tahu apa yang salah di sini?

Private Sub MultiBox_Change()

Dim oSht As Worksheet
Dim lastRow As Long, i As Long
Dim strSearch As String
Dim t As Long
Dim Var2 As String
Dim P As Long
Dim Var1 As String
Dim x As Long


x = 1



On Error GoTo Err
Set oSht = Sheets("Prices")
lastRow = oSht.Range("A" & Rows.Count).End(xlUp).Row
Var1 = FirstBox.Value & " " & SecondBox.Value & " " & ThirdBox.Value & " " & FourBox.Value
Var2 = FifthBox.Value & " " & SixthBox.Value
For i = 1 To lastRow
If oSht.Range("A" & i).Value = Var1 Then
        For P = 2 To 300
            If Cells(x, P) = Var2 Then
            **PredefinedForm.Value = Cells(P, A).Value**
        Exit Sub
    End If
    Next P
    End If
Next i

  Exit Sub
Err:
MsgBox Err.Description


End Sub

Terima kasih teman-teman :)

EDIT ::

Juga telah menggunakan kode di bawah ini untuk menemukan nilai x intersect dengan set Y, dan tidak memiliki masalah sama sekali.

Dim oSht As Worksheet
Dim lastRow As Long, i As Long
Dim strSearch As String
Dim t As Long
Dim Var1 As String

 On Error GoTo Err
Set oSht = Sheets("Sheet9")
lastRow = oSht.Range("A" & Rows.Count).End(xlUp).Row
Var1 = FirstBox.Value & " " & SecondBox.Value & " " & ThirdBox.Value & " " & FourBox.Value
For i = 1 To lastRow
    If oSht.Range("A" & i).Value = Device Then
        Predefined.Value = oSht.Range("C" & i)
        Exit Sub
    End If
Next i
Exit Sub
Err:
MsgBox Err.Description


End Sub
User123456798
sumber
1
Saya tidak melihat di mana Anda mendeklarasikan dan menugaskan A dalam Cells(P, A).Value
Sathyajith Bhat
Terima kasih @Sathya telah menetapkan A selama, dan masih memiliki kesalahan yang sama. Juga mencoba menghapus definisi untuk P.
User123456798

Jawaban:

1

Oke, perbaiki masalah, dan teruji untuk mengonfirmasi berfungsi Masalahnya adalah saya mencoba untuk mereferensikan ID baris berdasarkan pada variabel yang tidak ada, bukan variabel yang sedang diulang.

Demi anak cucu: Pastikan setiap kali mencoba menggunakan variabel, Anda menggunakan variabel yang tepat yang sudah dideklarasikan.

Kode tetap untuk referensi:

Private Sub MultiBox_Change()

Dim oSht As Worksheet
Dim lastRow As Long, i As Long
Dim strSearch As String
Dim t As Long
Dim Var2 As String
Dim P As Long
Dim Var1 As String
Dim x As Long


x = 1



On Error GoTo Err
Set oSht = Sheets("Prices")
lastRow = oSht.Range("A" & Rows.Count).End(xlUp).Row
Var1 = FirstBox.Value & " " & SecondBox.Value & " " & ThirdBox.Value & " " & FourBox.Value
Var2 = FifthBox.Value & " " & SixthBox.Value
For i = 1 To lastRow
If oSht.Range("A" & i).Value = Var1 Then
    For P = 2 To 300
        If Cells(x, P) = Var2 Then
        **PredefinedForm.Value = Cells(P, i).Value**
    Exit Sub
End If
Next P
End If
Next i

  Exit Sub
Err:
MsgBox Err.Description


End Sub
User123456798
sumber