Wie kann ich den Wert dieser variable für meine nächste Unterprogramm?

Bin ich ein Programmier-Anfänger (keine Erfahrung) erlernen von Visual Basic für einen job, den ich gerade mache. Ich habe gelesen, für einen Tag oder so und haben schließlich beschlossen, um das gewünschte Programm!

Allerdings bin ich im laufen in einige Probleme.

Nun habe ich zwei Unterprogramme. Die erste Unterroutine ermöglicht es dem Benutzer-Eingabe, wie viele Daten-Paare, die Sie haben, so dass ich eine Tabelle für Sie ausfüllen. Dies ist, so dass Ihre Daten an der richtigen Stelle für mich, um für spätere Referenzzwecke.

Dort ist dann eine Schaltfläche, die Sie drücken, nachdem Sie die Eingabe beenden, starten Sie eine andere Unterroutine, die einige Berechnungen, die zahlen, die Sie eingegeben. Mein Problem ist, ich brauche die variable, die besagt, wie viele Daten-Paare, die Sie tragen müssen, über die zweite routine.

Bevor ich weiter, hier ist mein code so weit!!! (Sie müssen nach unten scrollen in dem Fenster) ich sollte auch beachten, dass das zweite Unterprogramm wird in einem separaten Modul.

Option Explicit

Public Counter As Long


Sub TableCreation1()

    ActiveSheet.Shapes.Range(Array("Button 5")).Select

    Selection.Delete

    Counter = InputBox("How many pairs of data do you have? ")

    Range("A1") = "Time (days)"

    Range("B1") = "CFL (measured)"

    Range("A1:B1").Font.Bold = True

    Columns("A:B").EntireColumn.EntireColumn.AutoFit

    Range("A1").Select

    ActiveCell.Range("A1:B" & Counter + 1).Select

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone

    Selection.Borders(xlDiagonalUp).LineStyle = xlNone

    With Selection.Borders(xlEdgeLeft)

       .LineStyle = xlContinuous

       .Weight = xlThin

    End With

    With Selection.Borders(xlEdgeTop)

        .LineStyle = xlContinuous

        .Weight = xlThin

    End With

    With Selection.Borders(xlEdgeBottom)

        .LineStyle = xlContinuous

        .Weight = xlThin

    End With

    With Selection.Borders(xlEdgeRight)

        .LineStyle = xlContinuous

        .Weight = xlThin

    End With

    With Selection.Borders(xlInsideVertical)

        .LineStyle = xlContinuous

        .Weight = xlThin

    End With

    With Selection.Borders(xlInsideHorizontal)

        .LineStyle = xlContinuous

        .Weight = xlThin

    End With

    Dim btn As Button

    Dim rng As Range

    With Worksheets("Sheet1")

        Set rng = .Range("A" & Counter + 2)

        Set btn = .Buttons.Add(rng.Left, rng.Top, rng.Width, rng.Height)

    With btn

        .Caption = "Click this button to begin calculations"

        .AutoSize = True

    End With

    End With

End Sub



Option Explicit

Dim IntermediateVariable As Long

Public Counter As Long

Sub FindCFLGuess()

IntermediateVariable = Worksheets("Sheet1").Range("B:B").Cells.SpecialCells(xlCellTypeConstants).Count

Counter = IntermediateVariable - 1

End Sub

Warum ist nicht der Wert für Zähler der Versetzung in das zweite Unterprogramm? Jetzt habe ich eine Abhilfe, zählt die Anzahl von Zellen ausgefüllt, die in der Spalte B, die gibt mir die Nummer. Jedoch, dass macht es so, dass ich nicht in der Lage sein, die Verwendung der Raum, in Spalte B für den rest der Platte, die ich verwenden möchten.

Kann jemand helfen? Ich dachte an die "Öffentlichkeit" wäre es ein Workbook-level-variable? Wenn ich den zweiten sub-display wird der Wert des Zählers, es kommt als null.

Sorry, wenn mein code ist chaotisch/ineffizient. Ich bin immer noch lernen. 🙂

Erklären Sie Counter zweimal für den Anfang. Versuchen Sie, loszuwerden, die zweite definition. Public Counter As Long
Ah danke, das hat geholfen.
Wenn ich versuche, führen Sie den code, wie oben geschrieben, bekomme ich einen compile-Fehler wegen der Option Explicit und die öffentlichen Variablen deklariert, die in der Mitte. Wie sind Sie in der Lage zu laufen auch diese wissen, dass Ihr nicht arbeiten?

InformationsquelleAutor TheTreeMan | 2012-07-06

Schreibe einen Kommentar