Передача данных с помощью рабочих книг - PullRequest
0 голосов
/ 22 февраля 2019

ребята и девчонки, я застрял в этом коде, над которым я работал, он постоянно выдает ошибку, говоря, что у меня есть следующий, но нет, потому что у меня есть только два форса и два некса.любая помощь будет оценена.

Sub TRANS2 ()

Dim wsCopy2 As Worksheet
Dim wsDest2 As Worksheet
Dim i As Integer
Dim inrow As Integer
Dim inmatch As String
Dim inpax As Integer
Dim k As Integer
Dim outrow As Integer
Dim outmatch As String
Set wsCopy2= Workbooks("CargoReport1.xlsx").Worksheets("CargoReport")
Set wsDest2 = Workbooks("w1.xlsm").Worksheets("Sheet1")

If wsCopy2.Range("c2") > 0 Then


inrow = 1000


For i = 2 To inrow
    inmatch = wsCopy2.Range("d" & i)
    If inmatch = "" Then
        Exit For



outrow = 1000
    For k = 2 To outrow
        outmatch = wsDest2.Range("A" & k)
        If outmatch = inmatch Then
            Exit For
                End If

        If outmatch = "" Then
            wsDest2.Range("A" & k) = inmatch
                Exit For
                    End If
                        Next

        If outmatch = inmatch Then
                 Exit For
                    End If
                        Next

End If
End Sub

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Это может помочь:

Option Explicit

Sub TRANS2()

    Dim wsCopy2 As Worksheet, wsDest2 As Worksheet
    Dim i As Long, inrow As Long, inpax As Long, outrow As Long, k As Long
    Dim inmatch As String, outmatch As String

    Set wsCopy2 = Workbooks("CargoReport1.xlsx").Worksheets("CargoReport")
    Set wsDest2 = Workbooks("w1.xlsm").Worksheets("Sheet1")

    If wsCopy2.Range("c2") > 0 Then

        inrow = 1000

        For i = 2 To inrow
            inmatch = wsCopy2.Range("d" & i).Value
            If inmatch = "" Then
                Exit For
            End If

            outrow = 1000

            For k = 2 To outrow
                outmatch = wsDest2.Range("A" & k).Value
                If outmatch = inmatch Then
                    Exit For
                End If

                If outmatch = "" Then
                    wsDest2.Range("A" & k).Value = inmatch
                    Exit For
                End If
            Next k

                If outmatch = inmatch Then
                    Exit For
                End If
        Next i

    End If

End Sub
0 голосов
/ 22 февраля 2019

Всегда делайте отступ в своем коде.Таким образом, вы можете увидеть, чего не хватает.См. Это

For i = 2 To inrow
    inmatch = wsCopy2.Range("d" & i)
    If inmatch = "" Then
        Exit For
        outrow = 1000

        For k = 2 To outrow
            outmatch = wsDest2.Range("A" & k)
            If outmatch = inmatch Then
                Exit For
            End If

            If outmatch = "" Then
                wsDest2.Range("A" & k) = inmatch
                Exit For
            End If
        Next

        If outmatch = inmatch Then
            Exit For
        End If
    '~~~> SOMETHING IS MISSING HERE????
Next

Вы пропали без вести и End If в '~~~> SOMETHING IS MISSING HERE???? для If inmatch = "" Then

это до inrow.Если wsCopy2.Range ("c2")> 0 Тогда я попытался поставить еще один конец, если вы прокомментировали, что чего-то не хватает.но это не понравилось - rubberduckiegod 5 минут назад

Я думаю, вы вставили его не в то место.Это ваш полный код

Sub TRANS2()
    Dim wsCopy2 As Worksheet
    Dim wsDest2 As Worksheet
    Dim i As Integer
    Dim inrow As Integer
    Dim inmatch As String
    Dim inpax As Integer
    Dim k As Integer
    Dim outrow As Integer
    Dim outmatch As String
    Set wsCopy2 = Workbooks("CargoReport1.xlsx").Worksheets("CargoReport")
    Set wsDest2 = Workbooks("w1.xlsm").Worksheets("Sheet1")

    If wsCopy2.Range("c2") > 0 Then
        inrow = 1000

        For i = 2 To inrow
            inmatch = wsCopy2.Range("d" & i)
            If inmatch = "" Then
                Exit For
                outrow = 1000
                For k = 2 To outrow
                    outmatch = wsDest2.Range("A" & k)
                    If outmatch = inmatch Then
                        Exit For
                    End If

                    If outmatch = "" Then
                        wsDest2.Range("A" & k) = inmatch
                        Exit For
                    End If
                Next

                If outmatch = inmatch Then
                     Exit For
                End If
            End If
        Next
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...