2015-07-02 5 views
0

Расширенные данныеExcel, чтобы создать новый лист для каждой строки

листов один будет для ввода данных. Каждая строка будет представлять собой Сервисный билет. Каждый столбец будет представлять данные об инциденте службы, такие как серийный номер или номер модели.

желаемого результата

Для каждой строки, содержащей данные в определенной области (колонка А ~ «Билет номер) в Excel создаст новый лист (билет службы) на основе шаблона и поместить данные из соответствующие строки в указанных клетках.

Спасибо заранее за любую помощь, вы можете быть в состоянии обеспечить.

ответ

0

начну с того, что вы должны быть осторожны с этим, как есть предел число 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 
+0

спасибо. Это выходит за рамки моего опыта. – Houston

Смежные вопросы