Как исправить команду «Столбцы», чтобы она выбиралась только в нижней части таблицы? - PullRequest
0 голосов
/ 17 января 2019

Каждую неделю я импортирую необработанные данные Excel из внешнего источника. Я обычно вставляю их как значения, чтобы он поддерживал таблицу, в которую они должны войти. Этот скрипт запускается еженедельно, чтобы исправить некоторые проблемы форматирования, такие как изменение выбранных столбцов на числа или даты, а затем сортировка (для имеющегося у меня массива). Но когда я запускаю это, он выбирает весь столбец (всего пару столбцов), поэтому, когда скрипт запускается, он расширяет таблицу до тысяч строк и выдает ошибочные данные в более поздней сводной таблице. Мне нужно изменить код выбора столбцов, но я не уверен, как.

Одна большая проблема состоит в том, что пара этих столбцов имеет ячейки без данных. Если это возможно, следует выбрать все строки в таблице TABLE для столбца, поскольку этот сценарий не будет работать до тех пор, пока не будут введены новые данные, уже изменяя размер таблицы.

Я записал действия, необходимые для создания этого скрипта, что означает, что он не очень оптимизирован, но он выполняет свою работу и достаточно быстро. Я попытался следующий код, но я не думаю, что он работает как замена для Columns.ActiveSheet.Range ("C2", ActiveCell.SpecialCells (xlLastCell)). Выберите

Sub WeeklyRoutine()
'
' WeeklyRoutine Macro
'

'
    Sheets("PR Raw Data").Select
    Columns("EN:EN").Select
    Selection.TextToColumns Destination:=Range( _
        "BurnData[[#Headers],[est_po_place]]"), DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
        False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 3) _
        , TrailingMinusNumbers:=True
    Range("EN2").Select
    ActiveWorkbook.Worksheets("PR Raw Data").ListObjects("BurnData").Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("PR Raw Data").ListObjects("BurnData").Sort. _
        SortFields.Add Key:=Range("EN2"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("PR Raw Data").ListObjects("BurnData").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Sheets("Current Week - SMPP Data").Select
    Columns("C:C").Select
    Selection.TextToColumns Destination:=Range("SMPPTrend[[#Headers],[PR]]"), _
        DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
        :=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
        Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
    Columns("I:I").Select
    Selection.TextToColumns Destination:=Range("SMPPTrend[[#Headers],[PR Age]]") _
        , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
    Columns("H:H").Select
    Selection.TextToColumns Destination:=Range( _
        "SMPPTrend[[#Headers],[Est PO Place Dt]]"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 3), TrailingMinusNumbers:=True
    Selection.NumberFormat = "m/d/yyyy"
    Range("H2").Select
    ActiveWorkbook.Worksheets("Current Week - SMPP Data").ListObjects("SMPPTrend"). _
        Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Current Week - SMPP Data").ListObjects("SMPPTrend"). _
        Sort.SortFields.Add Key:=Range("H2"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Current Week - SMPP Data").ListObjects( _
        "SMPPTrend").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...