Я уже пару недель возвращаюсь с приведенным ниже кодом.Есть немного раздражающих вещей, которые я не могу осознать.Последняя странность - заполнение, остановка в строке 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](https://i.stack.imgur.com/b1SuB.png)
И вот как выглядит форма перед этим.Серая кнопка «Создать файл заказа», где находится макрос.
![enter image description here](https://i.stack.imgur.com/slocC.png)
Таким образом, есть две строки gumpf, а не настоящие строки заголовка, но они всегда останутся прежними:
- Строка 1: информация о заказе (даты и т. Д.)
- Строка 2: информация о доставке и заказе
- Строка 3: запрошенные детали (они должны быть заполнены), включая следующие строки, которые являются количеством истоимость и т. д.
- Строка x: Всего заполненных строк
Спасибо, как всегда заранее.