L oop для вставки строк в таблицы на нескольких листах - PullRequest
1 голос
/ 03 февраля 2020

Я работаю над всеми oop до go через серию листов в моей книге и добавляю строку (или две) в таблицу на этом листе, если дата, связанная с этим листом, совпадает или после выбранная дата. Я создал таблицу с именами листов, датами и именами таблиц, через которые код мог бы пройти l oop ("Списки", на которые есть ссылки в коде). Тем не менее, ничего не происходит, когда я запускаю код. Должен ли я добавить оператор Do While или вкладывать их по-другому?

Private Sub CmdBttn2_Click()
Dim TxtBxAddDate As Date 'Is this necessary?
Dim ws As Worksheet
Set ws = Worksheets("Lists")


'Loop over list of sheets??
    Dim i As Integer
        For i = 1 To 31 'loop through rows 1 to 31
        If TxtBxAddDate >= ws.Cells(i, 21).Value Then 'Compare date to date on sheet list in column U
        Sheets(ws.Cells(i, 20).Value).Select 'Find sheet name in column T
           If ChkBxLAC01 = True And ChkBxLAC02 = True Then 'Add to both modules
                 newrowA = Worksheets(ws.Cells(i, 20).Value).ListObjects(ws.Cells(i, 22).Value).ListRows.Add(2)  'Add row to table in sheet
                 With newrowA
                 'Add module 1 info to row 5
                    ws.Cells(5, 3).Value = "Yes" 'Enabled
                    ws.Cells(5, 4).Value = "1" 'Module 1
                    ws.Cells(5, 5).Value = TxtBxNewAnalyte 'Assay name
                 'Add module 2 info to row 6
                    ws.Cells(6, 3).Value = "Yes" 'Enabled
                    ws.Cells(6, 4).Value = "2" 'Module 2
                    ws.Cells(6, 5).Value = TxtBxNewAnalyte 'Assay name
                 End With
                 MsgBox TxtBxNewAnalyte & " added to modules 1 and 2.", vbOKOnly
              ElseIf ChkBxLAC01 = True And ChkBxLAC02 = False Then 'Add to module 1, not 2
                 newrowB = Worksheets(ws.Cells(i, 20).Value).ListObjects(ws.Cells(i, 22).Value).ListRows.Add(1)  'Add row to table in sheet
                 With newrowB
                    ws.Cells(5, 3).Value = "Yes" 'Enabled
                    ws.Cells(5, 4).Value = "1" 'Module 1
                    ws.Cells(5, 5).Value = TxtBxNewAnalyte 'Assay name
                 End With
                 MsgBox TxtBxNewAnalyte & " added to module 1.", vbOKOnly
              ElseIf ChkBxLAC01 = False And ChkBxLAC02 = True Then 'Add to module 2, not 1
                 newrowC = Worksheets(ws.Cells(i, 20).Value).ListObjects(ws.Cells(i, 22).Value).ListRows.Add(1)  'Add row to table in sheet
                 With newrowC
                    ws.Cells(5, 3).Value = "Yes" 'Enabled
                    ws.Cells(5, 4).Value = "2" 'Module 2
                    ws.Cells(5, 5).Value = TxtBxNewAnalyte 'Assay name
                 End With
                 MsgBox TxtBxNewAnalyte & " added to module 2.", vbOKOnly
              Else
              MsgBox "No modules selected!", vbExclamation
              GoTo NxtTbl
           End If
           Else
           GoTo NxtTbl
        End If
NxtTbl:
        Next


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