Как кодировать в макросе Excel для извлечения данных на новый лист в виде строк данных (новый формат) - PullRequest
0 голосов
/ 21 декабря 2018

В прикрепленном файле этот отчет будет извлечен на новый лист в виде строк данных для ввода в базу данных MS Access.Пример выходных данных показан в нижней части.У кого-нибудь есть идеи, как это сделать в макросе Excel?Спасибо!

1 Ответ

0 голосов
/ 21 декабря 2018

Уважаемый @ROMEO SANDOVAL Я пытаюсь создать код для вас, чтобы дать некоторые рекомендации.См. Структуру листа и вывод и измените код в соответствии с вашими потребностями.

Структура и вывод:

enter image description here

Код:

Option Explicit

Sub test()

    Dim LastRowFirst As Long, LastRowNext As Long, LastColumn As Long, i As Long, j As Long
    Dim Subcon As String

    With ThisWorkbook.Worksheets("Sheet1")

          LastRowFirst = .Cells(.Rows.Count, "A").End(xlUp).Row

          'Loop start from row 3 (Row after Description) up to the last row of column A
          For i = 3 To LastRowFirst
            'If range is not empty
            If .Range("A" & i).Value <> "" Then
                If .Range("A" & i).Value = "CSTS" Or .Range("A" & i).Value = "MAMMOET" Or .Range("A" & i).Value = "GTA" Then
                    Subcon = .Range("A" & i).Value
                Else
                    'Loop start from column 3 (where the different spot appears) up to column 5
                    For j = 3 To 4
                        LastRowNext = .Cells(.Rows.Count, "F").End(xlUp).Row
                        .Cells(LastRowNext + 1, 6).Value = Format(Now, "mm/dd/yyyy")
                        .Cells(LastRowNext + 1, 7).Value = Subcon
                        .Cells(LastRowNext + 1, 8).Value = .Range("A" & i).Value
                        .Cells(LastRowNext + 1, 9).Value = .Cells(2, j).Value
                        .Cells(LastRowNext + 1, 10).Value = .Cells(i, j).Value
                    Next j
                End If
            End If
        Next i
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...