#excel #vba
Вопрос:
Очень простая проблема:
Я настраиваю шаблон счета-фактуры для автоматического создания нового номера счета-фактуры и автоматического сохранения в Excel. Мой формат номера счета: ABC/0001/2021-2022 (Название компании, которое является фиксированным косая черта Номер счета-фактуры будет автоматически обновляться с каждым счетом-фактурой косая черта финансовый год)
Я автоматически сохраняю счет в формате xlsx и pdf, и имя файла будет сохранено в соответствии с форматом номера счета(«ABC/0001/2021-2022 или в любом другом формате, который вы указали»).
Теперь для меня этого не происходит, потому что в моем формате номера счета-фактуры есть косая черта, которая является недопустимым символом для имени файла.
Поэтому я хочу автоматически сохранить свой файл как ABC-0001, ABC-0002 и так далее.
Совместное использование кода:
Sub NextInvoice()
LeftPart = Left(Range("D12").Value, 4)
Midpart = Mid(Range("D12").Value, 5, 4) 1
Midpart = Format(Midpart, "0000")
EndPart = Mid(Range("D12").Value, 9, 10)
Range("D12").Value = LeftPart amp; Midpart amp; EndPart
End Sub
Sub SaveInvoiceBothWaysAndClear()
Dim NewFN As Variant
' Create the PDF First
ActiveSheet.Copy
ActiveSheet.Shapes("Rectangle 2").Delete
ActiveSheet.Shapes("Oval 1").Delete
ActiveSheet.Shapes("Isosceles Triangle 3").Delete
ActiveSheet.Shapes("Arrow: Pentagon 6").Delete
ActiveSheet.Shapes("Arrow: Left-Right 7").Delete
NewFN = "D:My dataInvoicePDFABC-" amp; Range("D12").Value amp; ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFN, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
' Next, Save the Excel File
NewFN = "D:My dataInvoiceExcelABC-" amp; Range("D12").Value amp; ".xlsx"
ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close
Range("A20:C29").ClearContents
NextInvoice
End Sub
Комментарии:
1. Ты забыл задать вопрос.
Ответ №1:
Возможно, использовать Замену
Option Explicit
Sub demo()
Dim NewFN As String
NewFN = "D:My dataInvoicePDF" amp; Replace(Range("D12").Value, "/", "-") amp; ".pdf"
MsgBox NewFN
End Sub
Sub NextInvoice()
Dim ar
ar = Split(Range("D12"), "/")
ar(1) = Format(ar(1) 1, "0000")
Range("D12") = Join(ar, "/")
End Sub