Järgmine arve number - uudised

Microsoft Excel pakub palju arvemalle, mille saate alla laadida. Järgmise arve numbri suurendamiseks pole sisseehitatud viisi.

Salvestasin selle video, mis näitab, kuidas lisada mõned read VBA-kood oma töövihikusse, et saaksite iga arve uue failina salvestada. Seejärel tühistab makro arve ja lisab arve numbrile 1.

166 tuhande vaatamise ja sadade kommentaaridega leian, et samad küsimused kerkivad ikka ja jälle. Paluda inimestel lugeda läbi 800 kommentaari on muutunud ebapraktiliseks, sest vastus nende küsimusele on varem kuus korda üles pandud. Niisiis - populaarsete küsimuste jaoks postitan koodi siia.

KKK # 1

Kas saate minu jaoks koodi sisestada, kuna ma ei saa sisestada?

Sub NextInvoice() Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents End Sub Sub SaveInvoiceWithNewName() Dim NewFN As Variant ' Copy Invoice to a New Workbook ActiveSheet.Copy NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close NextInvoice End Sub

KKK # 2

Soovin arve Windowsi arvutisse PDF-failina salvestada

Märge

See kood töötab ainult Exceli 2010 või uuemate Windowsi versioonidega. Maci jaoks on erinev kood.

Peate valima arve sisaldava vahemiku ja tegema Lehekülje paigutus, Prindiala, Määra prindiala. Kui jätate selle sammu vahele, ilmuvad teie arvele makro käivitamiseks kasutatud nupud!

Sub SaveInvoiceAsPDFAndClear() Dim NewFN As Variant NewFN = "C:aaaInv" & Range("E5").Value & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFN, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents End Sub

KKK # 3

Soovin arve salvestada nii Exceli kui ka PDF-failina erinevasse kausta

Sub SaveInvoiceBothWaysAndClear() Dim NewFN As Variant ' Create the PDF First NewFN = "C:aaaPDFInvoicesInv" & Range("E5").Value & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFN, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False ' Next, Save the Excel File ActiveSheet.Copy NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close ' Increment the invoice number Range("E5").Value = Range("E5").Value + 1 ' Clear out the invoice fields Range("A20:E39").ClearContents End Sub

KKK # 4

Minu arve numbril on numbrid ja tähed

Peate koodi kohandama. Siin on mõned näidised. Heidil on arve number nagu SS15001. Arve numbrit vaadates on see kahetäheline eesliide, millele järgneb 5 numbrit. Uuel arve numbril tuleb kasutada vasakut (, 2) ja keskmist (, 3,5):

Range("E5").Value = Left(Range("E5").Value, 2) & 1 + Mid(Range("E5").Value, 3, 5)

Siin on keerulisem näide. Arve number on IN-1234-HA, kus IN tähistab arve. 1234 on järjekorranumber. HA on B10-st leitud kliendinime esimene täht.

LeftPart = Left(Range("E5").Value, 3) MidPart = Left(Range("E5").Value, 4, 4) + 1 EndPart = Left(Range("A10").Value, 2) Range("E5").Value = LeftPart & MidPart & EndPart

Ülaltoodud nelja rida võiksite lihtsustada järgmiselt:

Range("E5").Value = Left(Range("E5").Value, 3) & Left(Range("E5").Value, 4, 4) + 1 & Left(Range("A10").Value, 2)

KKK # 5

Mul on töövihikus muid makrosid (näiteks SpellNumber) ja mul on vaja ka makrod salvestada.

Selleks, et teie teised makrod saaksid töötada, et funktsioon Numbrid-sõnad saaksid edasi töötada, on strateegia natuke erinev. Selle asemel, et kopeerida ainult arveleht uude töövihikusse ja kasutada funktsiooni SaveAs, peate (a) mäletama töövihiku teed ja failinime, (b) salvestama kogu töövihiku koos nimega arve numbriga (c) ) Kustutage algne töövihik. (d) Töövihiku salvestamiseks algse nimega kasutage nuppu SaveAs.

Sub SaveInvoiceWithNewName() Dim OrigFN as Variant Dim NewFN As Variant ' Remember the original path and file name OrigFN = ThisWorkbook.FullName NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ' Save a copy with the new name ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ' Delete the original workbook so you can save without warning On Error Resume Next Kill (OrigFN) On Error Goto 0 ' Save again as the original file name ActiveWorkbook.SaveAs OrigFN, FileFormat:=xlOpenXMLWorkbook NextInvoice End Sub

KKK # 6

Pean töölehte kaitsma, et mu töötajad saaksid muuta ainult mõnda lahtrit. Teie makro käivitamisel kuvatakse teade "Lahter, mida proovite muuta, on kaitstud ja seetõttu ainult kirjutuskaitstud"

Võite makros lehe kaitse kaotada, kirjutada uue arve numbri ja seejärel lehte kaitsta. Seda tuleb teha ainult makros NextInvoice. Teine makro ei tee üheski lahtris muudatusi. Siin on kood, kui kasutate paroolita kaitset:

Sub NextInvoice() ActiveSheet.Unprotect Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub Here is the code if you have protected the sheet with a password of Tomato. Note that the password appears in this code twice. Change the password to the real password in two places. Sub NextInvoice() ActiveSheet.Unprotect Password:="Tomato" Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents ActiveSheet.Protect Password:="Tomato", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

KKK # 7

Ma ei taha, et salvestatud töövihikus oleks nupp Salvesta

See on keeruline, kuna teie vormi nimi muutub, kui tööleht uude töövihikusse kolib. Järgige väga hoolikalt neid samme:

  1. Avage arve makro töövihik
  2. Paremklõpsake arve sisaldaval lehekaardil. Valige Teisalda või Kopeeri.
  3. Valige rippmenüüs To Book: Uus raamat. Valige märkeruut koopia loomiseks. Klõpsake nuppu OK. See samm 3 simuleerib ActiveSheet.Koopia VBA-s.
  4. Nüüd, kui teil on arve tööleht uues töövihikus, klõpsake Ctrl ja klõpsake kujundil, mille soovite kustutada. Ctrl + klõps valib kuju ilma makro käivitamiseta.
  5. Kui valitud kuju on, vaadake valemiribast vasakule. Nimekastil kuvatakse nimi, näiteks "Ümmargune ristkülik 1". Selle kuju kustutamiseks, nagu allpool näidatud, kohe pärast ActiveSheetit koostage väga hoolikalt uus koodirida. Kopeeri:
Sub SaveInvoiceWithNewName() Dim NewFN As Variant ' Copy Invoice to a New Workbook ActiveSheet.Copy ActiveSheet.Shapes("Rounded Rectangle 1").Delete NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close NextInvoice End Sub

Tõrkeotsing ja veateated

  1. Järgmisi funktsioone ei saa makrovabadesse töövihikutesse salvestada: VB Project. Vastus: teie fail on praegu salvestatud XLSX-failina. Mind häirib sama palju see, et Microsoft otsustas vaikimisi kasutada katkist failitüüpi. Kasutage File, SaveAs ja muutke failitüübiks kas XLSB või XLSM.
  2. Type Mismatch. Answer: The code expects your invoice number to be a number. If you have SS15001 as an invoice number, you will have to figure out how to adapt your code. See FAQ #4 above.
  3. Compile error Expected line number or label or statement or end of statement on NewFN = “F:RobinusinessPCreceiptsInv” & Range(“H10”).Value & “.xlsx”. Answer: VBA does not like slanted quotation marks (also called Typographers quotes). Type the quotation mark in VBA and you will get "F:RobinusinessPCreceiptsInv" & Range("H10").Value & ".xlsx"
  4. We couldn't find C:UserJelenDocuments" Answer: The file path has to be exact. Are you sure you didn't mean C:UsersJelenDocuments? (Note the "s" at the end of users)
  5. Käitusaja viga 1004. Dokumenti ei salvestatud. Vastus: faili tee peab olema täpne. Vahetult enne faili salvestamist lisage MsgBox NewFN-iga uus rida. Käivitage kood. Avaneb kast, mis näitab faili teed ja faili nime. Veenduge, et tee ja faili nime vahel oleks tee eraldaja.
  6. Käitusaja tõrge '1004'. Objekti „_Workbook” meetod „SaveAs” nurjus. Vastus: FileFormat peab olema FileFormat: = xlOpenXMLWorkbook. Seda lugedes peaks see kõlama nagu "Excel Open XML Workbook". See pole Ex One Open XML töövihik. Jah, see on segane, et number 1 ja väiketäht L näevad videos ühesugused välja. 1l. Muutke oma X1OPENXMLWORKBOOK väärtuseks XLOPENXMLWORKBOOK.

Huvitavad Artiklid...