VBA, если данные таблицы Excel пустые, то go к следующей таблице Excel на листе - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть лист с несколькими именованными таблицами Excel, которые копируют данные таблицы (в пределах определенного именованного диапазона) и вставляют их в другой лист для целей записи. Однако иногда может не быть данных, и я получаю ошибку во время выполнения. Поэтому я пытаюсь понять, как создать оператор al oop или if, чтобы пропустить эту таблицу и перейти к следующей, но мои навыки VBA ограничены некоторой записью и поиском в Google, и я теряюсь в том, как включить это в мой существующий код ...

Sub CopyTrackingHist()

' CopyTrackingHist Macro

Dim ws As Worksheet
Dim tblM As ListObject
Dim tblR As ListObject
Dim tblN As ListObject
Dim tblI As ListObject

Set ws = Sheets("Tracking")
Set tblM = ws.ListObjects("Maturities_Track")
Set tblR = ws.ListObjects("Rollovers_Track")
Set tblN = ws.ListObjects("NewDeal_Track")
Set tblI = ws.ListObjects("IntPay_Track")

    Application.ScreenUpdating = False
'Daily Maturities Copied from Tracking Sheet to Historical sheet

      Sheets("Tracking").Select
      Range(tblM & "[[Date]:[Daily Flow Client Rate Interest Mar]]").Select
      Selection.Copy
'Paste into Historical capture sheet
      Sheets("Maturities_Hist").Select
      Range("A1").Select
      Range("A1").End(xlDown).Offset(1, 0).Select

      Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

'Daily Rollovers copied to Historical Sheet
    Sheets("Tracking").Select
    Range(tblR & "[[Date Stlmt]:[Daily Flow Client Rate Interest Mar]]").Select
    Selection.Copy
'Paste into Historical capture sheet
    Sheets("Rollovers_Hist").Select
    Range("A1").Select
    Range("A1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

'Daily New Deals table to Historical sheet
    Sheets("Tracking").Select
    Range(tblN & "[[Date Stlmt]:[Daily Flow Client Rate Interest Mar]]").Select
    Selection.Copy
'Paste into Historical capture sheet
    Sheets("NewDeals_Hist").Select
    Range("A1").Select
    Range("A1").End(xlDown).Offset(0, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

'Daily Interest Payments copied to Historical Sheet
    Sheets("Tracking").Select
    Range(tblI & "[[Date]:[Daily Flow Client Rate Interest Mar]]").Select
    Selection.Copy
'Paste into Historical capture sheet
    Sheets("InterestPymts_Hist").Select
    Range("A1").Select
    Range("A1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

Конечный пользователь вводит информацию в каждую таблицу, поэтому я планирую использовать этот макрос перед другим макросом, который очищает и сбрасывает лист. Если вы также можете поделиться, как подключить это к существующему макросу, это было бы невероятно :) Я также открыт для отзывов и предложений, чтобы сделать код более эффективным;) Спасибо всем

...