У меня есть следующий скрипт VBA, который выполняет расширенный фильтр и заполняет новый лист. Я хотел бы получить результаты в порядке на моем новом листе.VBA, новый лист, формирующие ячейки
Так, например, результаты листа 1 будут заполнены в C2, лист 2 C3, лист 3 в C4. Но если лист 2 не имеет результатов, лист 3 будет заполняться на C3. Кто-нибудь знает о какой-нибудь работе? Мне нужно, чтобы результаты соответствовали листу. Может быть простая формула диапазона? VBA новичок здесь.
Sub louis4()
Dim wks As Excel.Worksheet
Dim wksSummary As Excel.Worksheet
'----------------------------------------------------------------------------------
'edited so it shows in the 3rd column row +1. Add the header and sheet name macro to this
On Error Resume Next
Set wksSummary = Excel.ActiveWorkbook.Worksheets("Unique data")
On Error GoTo 0
If wksSummary Is Nothing Then
Set wksSummary = Excel.ActiveWorkbook.Worksheets.Add
wksSummary.Name = "Unique data"
End If
'Iterate through all the worksheets, but skip [Summary] worksheet.
For Each wks In Excel.ActiveWorkbook.Worksheets
With wksSummary
If wks.Name <> .Name Then
If Application.WorksheetFunction.CountA(wks.Range("C:C")) Then
Dim r As Range
' Get the first cell of our destination range...
Set r = .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row + 1, 3)
' Perform the unique copy...
If WorksheetFunction.CountA(wks.Range("C:C")) > 1 Then
wks.Range("C:C").AdvancedFilter xlFilterCopy, , r, True
End If
' Remove the first cell at the destination range...
r.Delete xlShiftUp
End If
End If
End With
Next wks
'Headers and sheet names
Range("A1").Value = "File Name "
Range("B1").Value = "Sheet Name "
Range("C1").Value = "Column Name"
Dim intRow As Long: intRow = 2
For i = 1 To Sheets.Count
If Sheets(i).Name <> ActiveSheet.Name Then
Cells(intRow, 2) = Sheets(i).Name
Cells(intRow, 1) = ActiveWorkbook.Name
intRow = intRow + 1
End If
Next i
End Sub
Вы хотите или не хотите, чтобы результат появится в С3 из листа 4, если c3 пусто? –
Да, я хочу этого. Но для уточнения, скажем, мой лист 2 не имеет никаких результатов. Затем я хочу, чтобы его место в настоящее время заполнялось как пустое, и у меня не было следующего результата для заполнения в этой ячейке. – Jonathan
Я не уверен, что понимаю, что вы делаете во всем своем коде, в конце этого кода, который вы опубликовали, какая переменная содержит ответ? –