Çözüldü VBA Çoklu Karşılaştırma 1004 Hatası

sitki1

Altın Üye
Katılım
11 Nisan 2015
Mesajlar
7
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
09-01-2028
Merhaba,

VBA ile KOMSULUK sayfasında ki A ve B alanlarındaki 2 veriyi, uzunluk, bağlı olduğu farklı değerler, son değerleri gibi parametreler ile analiz edip farklı bir sayfaya çıktı oluşturmak istiyorum.
Eğer, iç içe eğer gibi farklı denemeler sonucu For-Case yapısı ile bir noktaya kadar geldim ancak 139-150 satırları arasında 1004 hatası alıyorum. Döngü içerisinde, sıradaki ilk hücre bilgisini çekerken KOMList.Cells(i, 1) ile çekerken sorun yok ama 139-150 arasında KOMList.Cells(i, 2) 2. Hücreye göre işlem yapmam gerekiyor.
KOMList.Cells(i, 1) ve KOMList.Cells(i, 2) değerlerini önceki caselerde de kullanıyorum ancak onlarda bir hata almazken 139. ve 150. satırlar arasındaki KOMList.Cells(i, 2) yaptığımda hata almamı anlamlandıramadım. KOMList.Cells(i, 1) yaptığımda sorun ortadan kalkıyor. Makrolarla yeni haşır neşir olmaya başladım, kodlarda gariplikler olabilir :(
Yardımlarınızı rica ederim.

Kod:
Sub stkkom()
'Sheetleri tanımlama
Dim ws As Worksheet, KOMList As Worksheet, UData As Worksheet, GData As Worksheet, CMDSheet As Worksheet

Set KOMList = Worksheets("KOMSULUK")
Set UData = Worksheets("UMTS_CELL_DATA")
Set GData = Worksheets("GSM_CELL_DATA")
Set CMDSheet = Worksheets("CMD")
'Sheetleri tanımlama
'CMD Sheet temizleme
CMDSheet.Select
Range("A2", Selection.End(xlDown)).Delete 'CMD Sayfasını temizle.
KOMList.Select
'CMD Sheet temizleme
Dim celllist1 As Integer
Dim celllist2 As Integer
Dim cell1 As String
Dim cell2 As String
Dim rnc1 As String
Dim rnc2 As String
Dim status1 As Integer 'Case değişkenleri #1 3Gto3G
Dim status2 As Integer 'Case değişkenleri #2 Aynı RNC/BSC=True Farklı RNC/BSC=False
Dim status3 As Integer 'Case değişkenleri #3 Aynı Freq=True Farklı Freq=False
Dim status4 As Integer 'Case değişkenleri #4 2Gto2G
Dim status5 As Integer 'Case değişkenleri #5 3Gto2G
Dim status6 As Integer 'Case değişkenleri #6 2Gto3G
Dim resultbinary As String 'Cell state binary ile gösterim

celllist1 = WorksheetFunction.CountA(Range("A:A"))
celllist2 = WorksheetFunction.CountA(Range("B:B"))
'Cell listesinde boşluk kontrolü
If celllist1 <> celllist2 Then MsgBox "Tanımlanacak cell listelerinde hata var. Eşit sayıda olmayabilir." & vbCrLf & "Cell1 Hücre Sayısı: " & celllist1 & vbCrLf & "Cell2 Hücre Sayısı: " & celllist2, vbCritical
'Cell listesinde boşluk kontrolü


    For i = 2 To celllist1
   
        cell1 = KOMList.Cells(i, 1).Value
        cell2 = KOMList.Cells(i, 2).Value
        rnc1 = KOMList.Cells(i, 5).Value
        rnc2 = KOMList.Cells(i, 6).Value
   
        '#1 3Gto3G
        If Len(cell1) = 7 And Len(cell2) = 7 Then
        status1 = 1
        Else: status1 = 0
        End If
   
        '#2 Aynı RNC/BSC=True Farklı RNC/BSC=False
        If rnc1 = rnc2 Then
        status2 = 1
        Else: status2 = 0
        End If
   
        '#3 Aynı Freq=True Farklı Freq=False
        If status1 = 1 And Right(KOMList.Cells(i, 1), 1) = Right(KOMList.Cells(i, 2), 1) Then
        status3 = 1
        Else: status3 = 0
        End If
   
        '#1 2Gto2G
        If Len(cell1) = 6 And Len(cell2) = 6 Then
        status4 = 1
        Else: status4 = 0
        End If
   
        '#1 3Gto2G
        If Len(cell1) = 7 And Len(cell2) = 6 Then
        status5 = 1
        Else: status5 = 0
        End If
   
        '#1 2Gto3G
        If Len(cell1) = 6 And Len(cell2) = 7 Then
        status6 = 1
        Else: status6 = 0
        End If
   
        resultbinary = status1 & status2 & status3 & status4 & status5 & status6
        'Debug Prints
        Debug.Print cell1 & " " & cell2 & " " & "3Gto3G: " & status1
        Debug.Print rnc1 & " " & rnc2 & " " & "Equal RNC: " & status2
        Debug.Print rnc1 & " " & rnc2 & " " & "Equal FREQ: " & status3
        Debug.Print cell1 & " " & cell2 & " " & "2Gto2G: " & status4
        Debug.Print cell1 & " " & cell2 & " " & "3Gto2G: " & status5
        Debug.Print cell1 & " " & cell2 & " " & "2Gto3G: " & status6
        Debug.Print resultbinary
        Debug.Print "****"
        'Debug Prints
   
        'CASE
        Select Case resultbinary
   
        'CMD_3Gto3G_Ayni_RNC_Ayni_Freq_111000
        Case Is = "111000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTRAFREQNCELL:RNCID=" & WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
                                ",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ",NCELLRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
                                ",NCELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
                                ",SIB11IND=TRUE,SIB12IND=FALSE,TPENALTYHCSRESELECT=D0,NPRIOFLAG=FALSE;" & _
                                "{" & KOMList.Cells(i, 5) & "}"
                            CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTRAFREQNCELL:RNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
                                ",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
                                ",NCELLRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
                                ",NCELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ",SIB11IND=TRUE,SIB12IND=FALSE,TPENALTYHCSRESELECT=D0,NPRIOFLAG=FALSE;" & _
                                "{" & KOMList.Cells(i, 6) & "}"
                           
        'CMD_3Gto3G_Ayni_RNC_Farkli_Freq_110000
        Case Is = "110000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTERFREQNCELL: RncId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
                                ", CellId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & ", NCellRncId=" & _
                                Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & ", NCellId=" & _
                                Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & _
                                ", SIB11Ind=TRUE, IdleQoffset2sn=0, SIB12Ind=FALSE, TpenaltyHcsReselect=D0, BlindHOFlag=FALSE, NPrioFlag=FALSE;" & _
                                "{" & KOMList.Cells(i, 5) & "}"
                            CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UINTERFREQNCELL: RncId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
                                ", CellId=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 3, 0) & ", NCellRncId=" & _
                                Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & ", NCellId=" & _
                                Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ", SIB11Ind=TRUE, IdleQoffset2sn=0, SIB12Ind=FALSE, TpenaltyHcsReselect=D0, BlindHOFlag=FALSE, NPrioFlag=FALSE;" & _
                                "{" & KOMList.Cells(i, 6) & "}"

        'CMD_3Gto3G_Farkli_RNC_Ayni_Freq_101000
        Case Is = "101000": CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 2, 0) & _
                                ",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
                                ",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
                                ",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
                                ",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
                                ",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
                                ",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
                                ",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
                                ",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
                                "_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
                                "{" & KOMList.Cells(i, 6) & "}"
                            CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
                                ",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
                                ",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
                                ",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
                                ",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
                                ",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
                                ",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
                                ",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
                                ",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
                                "_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
                                "{" & KOMList.Cells(i, 5) & "}"
   
        Case Is = "100000": Call CMD_3Gto3G_Farkli_RNC_Farkli_Freq_100000
   
        Case Is = "010100": Call CMD_2Gto2G_Ayni_BSC_010100
   
        Case Is = "000100": Call CMD_2Gto2G_Farkli_BSC_000100
   
        Case Else: MsgBox "HATA VAR!!!!"

        End Select
        'CASE
   
   
    Next i

End Sub

Sub CMD_3Gto3G_Farkli_RNC_Farkli_Freq_100000()
MsgBox "3Gto3G Farklı RNC Farklı Freq"
End Sub

Sub CMD_2Gto2G_Ayni_BSC_010100()
MsgBox "2Gto2G Aynı BSC"
End Sub

Sub CMD_2Gto2G_Farkli_BSC_000100()
MsgBox "2Gto2G Farklı BSC"
End Sub
Hata aldığım 139-150 arası kod; bu alanda ki KOMList.Cells(i, 1)'leri KOMList.Cells(i, 2) yaptığımda alıyorum.
Kod:
                            CMDSheet.Range("A65535").End(xlUp).Offset(1, 0) = "ADD UEXT3GCELL:NRNCID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 2), UData.Range("A1:I65535"), 2, 0) & _
                                ",CELLID=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 3, 0) & _
                                ",CELLHOSTTYPE=SINGLE_HOST,CELLNAME=" & """" & KOMList.Cells(i, 1) & """" & _
                                ",CNOPGRPINDEX=0,PSCRAMBCODE=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 6, 0) & _
                                ",BANDIND=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 9, 0) & _
                                ",UARFCNUPLINKIND=TRUE,UARFCNUPLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 4, 0) & _
                                ",UARFCNDOWNLINK=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 5, 0) & _
                                ",TXDIVERSITYIND=FALSE,LAC=" & Application.WorksheetFunction.VLookup(KOMList.Cells(i, 1), UData.Range("A1:I65535"), 7, 0) & _
                                ",CFGRACIND=REQUIRE,RAC=1,QQUALMININD=FALSE,QRXLEVMININD=FALSE,MAXALLOWEDULTXPOWERIND=FALSE,USEOFHCS=NOT_USED" & _
                                ",CELLCAPCONTAINERFDD=HSDSCH_SUPPORT-1&EDCH_SUPPORT-1&EDCH_2MS_TTI_SUPPORT-1&EDCH_SF8_SUPPORT-1&EDCH" & _
                                "_HARQ_IR_COMBIN_SUPPORT-1&EDCH_HARQ_CHASE_COMBIN_SUPPORT-1&FLEX_MACD_PDU_SIZE_SUPPORT-1,EFACHSUPIND=FALSE;" & _
                                "{" & KOMList.Cells(i, 5) & "}"
 
Son düzenleme:

sitki1

Altın Üye
Katılım
11 Nisan 2015
Mesajlar
7
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
09-01-2028
Problem Vlookup içerisindeki Range("A1:I65535") girmemden kaynaklıyormuş :)
 
Üst