Frage : Excel VBA: Wie man dynamisch herstellte Code/Schnur läuft

He Experten,

I morgens versuchend, eine Schnur durchzuführen, die ich dynamisch hergestellt habe.  Ich baue diesen Code durch eine Schleife auf, dann möchte sie durchführen Afterwords.  Gibt es eine Funktion oder eine Weise, dass ich dies tun kann?  Oder wenn es nicht gibt, gibt es eine alternative Weise, meine Ausgabe zu lösen?  Sehen Code für, was ich zu do.
versuche
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Function RunCode (TotalRows)
    Schwaches SelectionString als Schnur
    Schwacher Kostenzähler als ganze Zahl
        SelectionString = „Selection.TextToColumns Bestimmungsort: =ActiveCell, datatype: =xlFixedWidth, FieldInfo: =Array (“
        Tun
        Wenn (Gegen= 0) dann
            SelectionString = SelectionString u. „Reihe (“ u. myArray (Gegen) u. „, 2)“
        Sonst
            SelectionString = SelectionString u. „, Reihe (“ u. myArray (Gegen) u. „, 2)“
        Beenden wenn
        Kostenzähler = Gegen+ 1
    Bis schlingen (Gegen > TotalRows)
    SelectionString = SelectionString u. "), TrailingMinusNumbers: =True“
    MsgBox (SelectionString)
    'Diese Schnur produziert erfolgreich die Funktion, um Text in meiner Vorwähler in Spalten umzuwandeln.
    'Jedoch, ist SelectionString eine Schnur offensichtlich und sieht wie die Funktion aus, die ich benötige, aber ich benötige eine Weise, sie durchzuführen.
    'Oder ich benötige eine unterschiedliche Art, dies zu tun. Das TotalRows ändert jedes Mal, also benötige ich eine Weise, diese große „FieldInfo“ Reihe dynamisch aufzubauen
    'ANMERKUNG: ist eine globale Reihe, sich sorgen nicht myArray um, was in ihm ist.
Enden-Funktion

Antwort : Excel VBA: Wie man dynamisch herstellte Code/Schnur läuft


Ich schrieb den folgenden Code für ein anderes Problem, ich herausgenommen das nicht notwendige Material, ich glaube, dass dieses eine viel bessere Weise ist, dem Öffnen des besagten Arbeitsbuches, dann dem Schließen es zu nähern, dann beendigend übertreffen

die private Funktion an der Unterseite, auch diese beachten annimmt, dass Sie einen Hinweis addieren, um im Projekt zu übertreffen und Importe Excel = microsoft.blah.blah.blha auch zu benutzen

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:
excelApp als Excel.Application verdunkeln
        WB als Excel.Workbook verdunkeln
        workbookName als Schnur verdunkeln = „Test-Arbeitsbuch-Name“

        'geöffnetes Excel zu herabgesetztem Zustand
        excelApp = neue Excel.Application ()
        excelApp.Visible = CBool (Microsoft.Office.Core.MsoTriState.msoTrue)
        excelApp.WindowState = Excel.XlWindowState.xlMinimized

        'geöffnetes Arbeitsbuch
        WB = excelApp.Workbooks.Open (workbookName, Microsoft.Office.Core.MsoTriState.msoFalse, _
                                     Microsoft.Office.Core.MsoTriState.msoFalse, _
                                     Microsoft.Office.Core.MsoTriState.msoTrue)
	
	WB.close
	excelApp.quit

        'Notwendigkeit, diese COM-Gegenstände oder -sie freizugeben kann in den laufenden Dienstleistungen geöffnet bleiben
        ReleaseObject (excelApp)
        ReleaseObject (WB)
        ReleaseObject (WS)
        ReleaseObject (Ziel)

        excelApp = nichts
        WB = nichts
        WS = nichts
        Ziel = nichts
        'Löschen targetArray

        'Abfalkollektor laufen lassen
        GC.Collect ()

    Privates VorReleaseObject (ByVal O als Gegenstand)
        Versuch
            System.Runtime.InteropServices.Marshal.ReleaseComObject (O)
        Fang ex als Ausnahme
        Schließlich
            O = nichts
        Enden-Versuch

    Enden-Unterseeboot
Weitere Lösungen  
 
programming4us programming4us