Заполните остановку в строке 33 - PullRequest
0 голосов
/ 01 октября 2018

Я уже пару недель возвращаюсь с приведенным ниже кодом.Есть немного раздражающих вещей, которые я не могу осознать.Последняя странность - заполнение, остановка в строке 33, но я не вижу причины, почему.

Код:

Sub ButtonMacro()
'Hide alerts
  Application.DisplayAlerts = False

'Save to users device
    ChDir "U:\WINDOWS"
    ActiveWorkbook.SaveAs Filename:="U:\WINDOWS\OrderForm.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False

'Create new workbook and populate
    Workbooks.Add
    Range("A1").FormulaR1C1 = "MSG"
    Range("B1").FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C[4]"
    Range("C1").FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C[3]"
    Range("D1").FormulaR1C1 = "1400008000"
    Range("E1").FormulaR1C1 = "501346009175"
    Range("F1").FormulaR1C1 = "=TODAY()"
    Range("G1").FormulaR1C1 = "=Now()"
    Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
    Range("A2").FormulaR1C1 = "HDR"
    Range("B2").FormulaR1C1 = "C"
    Range("C2").FormulaR1C1 = "1400011281"
    Range("G2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C[-1]"
    Range("H2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R[2]C[-4]"
    Range("K2").FormulaR1C1 = "STD"
    Range("L2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R5C2"
    Range("N2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R7C2"
    Range("O2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R8C2"
    Range("Q2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R9C2"
    Range("R2").FormulaR1C1 = "=[OrderForm.xlsx]Order!R12C2"
    Range("A3").FormulaR1C1 = "POS"
    Range("B3").FormulaR1C1 = "=ROW()*10-20"
    Range("C3").FormulaR1C1 = "=[OrderForm.xlsx]Order!r[12]c"
    Range("D3").FormulaR1C1 = "=[OrderForm.xlsx]Order!r[12]c[-3]"
    Range("E3").FormulaR1C1 = "=[OrderForm.xlsx]Order!r[12]c[-3]"
    Range("F3").FormulaR1C1 = "=[OrderForm.xlsx]Order!r[12]c[-1]"
    Range("G3").FormulaR1C1 = "=[OrderForm.xlsx]Order!r[12]c"
    Range("H3").FormulaR1C1 = "=IF(RC[-1]="""",""0"",""GBP"")"
    Range("M3").FormulaR1C1 = "=COUNTIF(C[-3], ""POS"")+COUNTIF(C[-3], ""HDR"")"

'Fills column to last row of data from Cell C3
    Dim LastRow As Long
    LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Range("C3:H3" & LastRow).FillDown


'Find last blank in C and fill with TRA  
    Cells(Application.Evaluate("MAX(IF(C3:C2000<>"""",ROW(c3:c2000)),0,1)"), "C").Select
    ActiveCell = "TRA"

'Format cells to remove 0 value
    Range("A1:Z1000").Select
    Range("Z1000").Activate
    Selection.NumberFormat = "#;#;"

'Reinstate alerts
Application.DisplayAlerts = True
MsgBox "We have saved a copy of your order form to your computer at C:\X\X"
End Sub

Это форматирование после сценария.TRA должен заполнить последнюю пустую ячейку, но он находит формулы, следовательно, заполняет промежуточную таблицу.Это ставит меня перед двумя вопросами.1 Почему он останавливается после 15 строк и как мне заставить его игнорировать формулу в других строках?Я делаю третье по вопросу, который я еще не рассматривал, это смещение последней строки, чтобы начать заполнять в AX (последняя строка равна последней заполненной строке / ячейке c).Я рад продолжать изучать это, если это слишком много для одной темы.

enter image description here

И вот как выглядит форма перед этим.Серая кнопка «Создать файл заказа», где находится макрос.

enter image description here

Таким образом, есть две строки gumpf, а не настоящие строки заголовка, но они всегда останутся прежними:

  • Строка 1: информация о заказе (даты и т. Д.)
  • Строка 2: информация о доставке и заказе
  • Строка 3: запрошенные детали (они должны быть заполнены), включая следующие строки, которые являются количеством истоимость и т. д.
  • Строка x: Всего заполненных строк

Спасибо, как всегда заранее.

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