Frage : VBA Code zur Schleife durch einen Prozess für den Import des EXISTIERENS übertreffen Akten.

Wenn Sie meinen Block des Codes unten überprüfen, beachten Sie, dass ich Verteilungsbögen importiere, deren Name mit „Widget“ von 3 unterschiedlich übertreffen Akten beginnt (Year1.xlsx, Year2.xlsx, Year3.xlsx).  

I morgens nach einer mehr effizienten Art suchend, diesen Code zu schreiben, um etwas von der Redundanz zu beseitigen.  Sie beachten für Unterseeboote „ImportSheetsYears1“, „ImportSheetsYears2“ und „ImportSheetsYears3“, das der Code außer dem `xlPath' identisch ist.  So benötige ich vermutlich irgendeine Art der Schleife, aber ich bin nicht sicher, wie man it.

Also in der Schleife kodiert, wenn die übertreffenakte nicht existiert; sie sollte sie überspringen und zum folgenden zu gehen Akte übertreffen.  Wenn keine von spezifiziert Akten existieren übertreffen, sollte ein msgbox abfeuern und das Unterseeboot sollte herausgenommen werden.  Ich annehme h, dass eine Störungszufuhr die beste Weise sein, ungefähr zu gehen dieses?  

Anyhow, Dank im Voraus für irgendwelche möglichen Lösungen.  
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
Option vergleichen Datenbank
Wahl ausdrücklich

Schwaches objXL als Gegenstand
Schwacher Stall, xlPath als Schnur, i als ganze Zahl


Allgemeines VorImportExcelSheets ()
Anruf ImportSheetsYears1
Anruf ImportSheetsYears2
Anruf ImportSheetsYears3
Enden-Unterseeboot




Privates Unterseeboot ImportSheetsYears1 ()

xlPath = „\ \ serverName \ Year1.xlsx“

objXL = CreateObject („Excel.Application“) einstellen
    objXL.Workbooks.Open xlPath, zutreffend
    Mit objXL
        Für i = 1 zu. Worksheets.Count
            Wenn InStr (. Arbeitsblätter (i). Name, „Widget“) dann
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tableName“, xlPath, zutreffend. Arbeitsblätter (i). Name u.“! A: M "
            Beenden wenn
        Zunächst
    Ende mit
    objXL.Quit
    objXL einstellen = nichts

Unterseeboot beenden

Privates Unterseeboot ImportSheetsYears2 ()

xlPath = „\ \ serverName \ Year2.xlsx“

objXL = CreateObject („Excel.Application“) einstellen
    objXL.Workbooks.Open xlPath, zutreffend
    Mit objXL
        Für i = 1 zu. Worksheets.Count
            Wenn InStr (. Arbeitsblätter (i). Name, „Widget“) dann
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tableName“, xlPath, zutreffend. Arbeitsblätter (i). Name u.“! A: M "
            Beenden wenn
        Zunächst
    Ende mit
    objXL.Quit
    objXL einstellen = nichts

Unterseeboot beenden


Privates Unterseeboot ImportSheetsYears3 ()

xlPath = „\ \ serverName \ Year3.xlsx“

objXL = CreateObject („Excel.Application“) einstellen
    objXL.Workbooks.Open xlPath, zutreffend
    Mit objXL
        Für i = 1 zu. Worksheets.Count
            Wenn InStr (. Arbeitsblätter (i). Name, „Widget“) dann
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _
             „tableName“, xlPath, zutreffend. Arbeitsblätter (i). Name u.“! A: M "
            Beenden wenn
        Zunächst
    Ende mit
    objXL.Quit
    objXL einstellen = nichts

Unterseeboot beenden

Antwort : VBA Code zur Schleife durch einen Prozess für den Import des EXISTIERENS übertreffen Akten.

Ich bin sicher, dass es… gibt, aber wie ich erklärte, es nicht angemessen ist.  Wie konnten Sie es tun?  Da ich jemand anderes erklärte, das eine Frage einer ähnlichen Natur stellt, einen Programmierer/einen Hacker einstellen, die und immer so weiter und schließlich analysieren können, wie Windows das tut Aufsteigen zu Bit 32, welche Anrufe es bildet, ich sind sicher, dass sie eine Weise herausfinden.  Sie kann kostet 5 oder 6 Abbildungen… aber, wenn Sie das Geld haben, Nichts ist unmöglich.

Einfach gesetzt, da andere und selbst erklärt, dass auf die eine oder andere Weise - und ich während eines zweiten Mals in dieser Anmerkung erneut darstelle - es gibt KEINE ANGEMESSENE Weise des Handelns dies.  Die ist Ihre Antwort.  Kein angemessener Techniker (da ich sie definieren), verbringen jede bedeutende Zeit, die versucht, dies also es zu tun, ist IN HOHEM GRADE unwahrscheinlich Sie findet JEDERMANN, besonders jedermann hier gefunden, das eine Weise des Handelns sie - angemessen oder anders.  Experte-Austauschen ist ein großer Platz, zum von Antworten zu den Fragen zu finden und Probleme, die ein Geschäft oder Ihre Fähigkeit auswirken, ein System zu benutzen.  Wenn Sie etwas tun möchten, das niemand denkt, sind eine gute Idee oder sogar ein möglich, Sie fast zweifellos finden nicht eine Antwort, die zufrieden sind Sie mit, selbst wenn die bereitgestellten Antworten sind und gegenteilig ermangeln weiteren Beweis, genaues 100%.
Weitere Lösungen  
 
programming4us programming4us