начну с того, что вы должны быть осторожны с этим, как есть предел число o f листов в книге. Но вот какой-то код в vb. Это должно дать вам логику, чтобы сделать это в vba. Будет только некоторая разница в обращении к листу и, возможно, к ячейкам.
Вам нужно будет объявить таблицу, что вы читаете через
Dim ws As Excel.Worksheet
Set ws = ea.Worksheets(1)
Он может начать с индексом листа 0 так Set Ws = ea.Worksheets (0) Или есть что-то вроде Excel.Application. Activsheet
Вот логика Переберите строк и проверить значение столбца A.
dim lRow as integer
Do While lRow <= ws.UsedRange.Rows.Count
If ws.Range("A" & lRow).Value <> "" Then Then
'If cell A is not blank we then call the worksheet add function.
'Pass the name you want the worksheet and the page setup arguments.
WorksheetAdd ws.Range("A" & lRow).Value, xlPaperLetter, xlPortrait
ws.name = ws.Range("A" & lRow).Value
End If
lRow = lRow + 1
ws.Range("A" & lRow).Activate
Loop
Вы хотите functi worksheetAdd на подобном
Private Sub WorksheetAdd(szJobNumber As String, Papersize As XlPaperSize, PageOrientation As XlPageOrientation)
Dim bDisplayAlerts As Boolean
On Error GoTo ErrorHandler
'Add worksheet to workbook.
Set ws = ea.Worksheets.Add
ws.Name = szJobNumber
With ws.PageSetup
.Orientation = PageOrientation
.LeftFooter = "&D"
.CenterFooter = "&A"
.RightFooter = "Page &P of &N"
.Papersize = Papersize
End With
On Error GoTo 0
Exit Sub
ErrorHandler:
If Err.Number = 1004 Then
If MsgBox("There has been an error(#1004). Contact support. Excel is not installed or produced an error. Also, check for default printer.",vbCritical, "Information") = vbOK Then
'Unload frmPTReports
Exit Sub
End If
Else
Err.Raise Err.Number, Err.Source, Err.Description
End If
End Sub
спасибо. Это выходит за рамки моего опыта. – Houston