Почему мой скрипт массива циклических таблиц собирает дубликаты? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть простой сценарий зацикливания, который перемещается по всем файлам с расширением .xlsx, и, кажется, он отлично справляется со своей работой, пока не заметил, что он хранит дубликаты в varArray, и их нет в файлах.--самих себя.

Есть идеи, что здесь может быть причиной?У меня есть где-то от 1 до 4 рабочих листов на файл, я собираю данные в массив, так что это то, для чего нужен общий для каждого ws / next ws.

Option Explicit
Sub Sharepoint_Merge()


Dim k As Long, x As Long, j As Long ' counters
Dim varArray() As Variant
Dim varArray2() As Variant
ReDim varArray(1 To 31, 1 To 1)
Dim folderPath As String, filepath As String, filename As String
Dim Wb As Workbook
Dim ws As Worksheet

folderPath = "C:\merge\"

filepath = folderPath & "*.xlsx"

filename = Dir(filepath)

Call Ludicrous(True)

Do While filename <> ""

    Set Wb = Workbooks.Open(folderPath & filename)

For Each ws In Worksheets
        For j = 2 To ActiveSheet.UsedRange.Rows.Count + 1
            If ActiveSheet.Cells(j, 1) <> "" Then
                x = x + 1
                ReDim Preserve varArray(1 To UBound(varArray, 1), 1 To x)
                    For k = 1 To UBound(varArray, 1)
                        varArray(k, x) = ActiveSheet.Cells(j, k)
                    Next
            End If
        Next
Next ws
    Wb.Close
filename = Dir
Loop

ReDim varArray2(1 To UBound(varArray, 2), 1 To UBound(varArray, 1))

With ThisWorkbook.Worksheets("Merged Files")

    For j = 1 To UBound(varArray, 2)
        For k = 1 To UBound(varArray, 1)
            varArray2(j, k) = varArray(k, j)
        Next
    Next

    .Range(.Cells(2, 1), .Cells(UBound(varArray, 2), UBound(varArray, 1))) = varArray2
End With


Call Ludicrous(False)


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