Утро всем,
Еще один очень интересный вопрос типа. Я снова посмотрел и, возможно, неправильно понимаю, что читаю.
Я написал на прошлой неделе, что у меня возникли проблемы с отображением документа XLSX в документ CSV. Короче говоря, мы создаем форму заказа, защищенную от идиотов, в одном удобном для пользователя формате, который при нажатии на кнопку преобразуется в системную форму.
Пока мой код работает нормально -
Sub ButtonMacroLatest()
'Hide alerts
application.displayalerts = False
'
' Macro8 Macro
'
'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
ActiveCell.FormulaR1C1 = "MSG"
Range("B1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C"
Range("C1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C[3]"
Range("D1").Select
ActiveCell.FormulaR1C1 = "1400008000"
Range("E1").Select
ActiveCell.FormulaR1C1 = "501346009175"
Range("F1").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("G1").Select
ActiveCell.FormulaR1C1 = "=Now()"
Selection.NumberFormat = "[$-x-systime]h:mm:ss AM/PM"
Range("I1").Select
ActiveCell.FormulaR1C1 = "HDR"
Range("J1").Select
ActiveCell.FormulaR1C1 = "C"
Range("K1").Select
ActiveCell.FormulaR1C1 = "1400011281"
Range("O1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R[1]C[3]"
Range("P1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R2C4"
Range("S1").Select
ActiveCell.FormulaR1C1 = "STD"
Range("T1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R5C2"
Range("V1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R7C2"
Range("W1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R8C2"
Range("Y1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R9C2"
Range("Z1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R12C2"
Range("AB1").Select
ActiveCell.FormulaR1C1 = "POS"
Range("AE1").Select
ActiveCell.FormulaR1C1 = "=Row()*10"
Range("AF1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R15C3"
Range("AG1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R15C1"
Range("AH1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R15C2"
Range("AI1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R15C5"
Range("AJ1").Select
ActiveCell.FormulaR1C1 = "=[OrderForm.xlsx]Order!R15C7"
Range("AK1").Select
ActiveCell.FormulaR1C1 = "GBP"
Range("AM1").Select
ActiveCell.FormulaR1C1 = "TRA"
Range("AP1").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-3], ""POS"")+COUNTIF(C[-3], ""HDR"")"
'Reinstate alerts
application.displayalerts = True
End Sub
Проблема, с которой я столкнулся, заключается в том, что мне нужно скопировать последний набор из пяти формул с путем к файлу (от AF до AJ) в строку 500, скажем, но только если в исходном листе есть что-то или мне нужно также сделать скидку / удалить нули, если они вставлены в новый лист. Имейте в виду, что это форматируется для загрузки, поэтому дополнительные 0 и т. Д. Просто вызовут ошибки.
Я обыскивал, но не мог найти ничего, что отвечало бы на это прямо, так что извините, если я что-то пропустил.
Я могу попробовать запись, но, конечно, это не работает с «IF», так что все будет в камне.
Просто, чтобы уточнить остальные поля, также необходимо заполнить их вниз, но их не нужно увеличивать, поскольку они все время вытягиваются из одной и той же ячейки. Так есть ли способ кодирования этого в VB, чтобы избавить от необходимости делать это вручную? Я полагаю, я всегда могу записать это и использовать это. Я только спрашиваю, поскольку я уже на tpoic (так, чтобы быть немного дерзким).
Опять, извините, если я пропустил какие-либо статьи. Я не мог найти то, что я был после.