VBA-Excel-Store-Bereich als Array extrahieren Sie Zelle Werte für die Formel. Offset für die anderen Variablen
Ich bin ein bisschen neu in diesem. Wie würde ich nehmen Sie die Spalte und legen Sie die Zelle Daten, die eine ganze Zahl und gehen Sie durch alle Werte in diesem Bereich legen Sie Sie in eine Funktion, um das Ergebnis in eine andere Spalte in der excel-Arbeitsmappe. Also mein output-Spalte wird die gesamte Comm Spalte mit den Spalten G, J und K für die Eingänge in die Funktion =100000*slotNumber+300*xpos+ypos
A B C D E F G H I J K
1 Proc Equip Operat Shift Comm Casette SlotNumber Diam Measure XPos YPos
2
3'
So gedacht, wenn ich nahm die Werte der einzelnen und machte eine for-Schleife, ich könnte die Werte und die irgendwie alles machen, nur nicht wissen wie! Bitte und danke!
EDIT: ich habe alle Spalten gespeichert, jetzt muss ich übergeben Sie das Array-Werte in die Funktion ein, indem ein, für die Formel Z = 100000*slotArr(i)+300xList(i)+yList(i)
oder vielleicht kann ich nur legen Sie Sie in der for-Schleife.
EDIT: nach Aufgabe der Funktion in der Schleife...ich bin immer ein Objekt außerhalb des Messbereichs Fehler...in der Zeile der Funktion.
Sub cmdMeans_Click()
Dim i As Long, j As Long
Dim slotList As Range, slotArr() As Variant, xList As Range, xArr() As Variant
Dim yList As Range, yArr() As Variant, cArr() As Variant
Set slotList = Range("P2", Range("P2").End(xlDown))
slotArr() = slotList.Value
Set xList = slotList.Offset(0, 4)
xArr() = xList.Value
Set yList = slotList.Offset(0, 5)
yArr() = yList.Value
'Only one counter required because of the dependancy on the range slotList
For i = 2 To UBound(slotArr, 1)
'Dimensioning Array
ReDim cArr(UBound(slotArr, 1), 1)
cArr(i, 1) = (100000 * slotArr(i, 1)) + (300 * xList(i, 1)) + yList(i, 1)
'MsgBox ("Comment Cell Value" & cArr(i, 1))
Next
'Resizing Array
ReDim Preserve cArr(i)
'This is where the new values will be written to the comment column
Dim cRng As Range
Set cRng = Range(Cells(14, 1), Cells(UBound(cArr(i))))
cRng.Value = Application.Transpose(cArr)
End Sub
- Konnte Sie formatieren Sie Ihre Frage deutlicher oder ggf. die Lieferung eines screenshot? Ich habe keine Ahnung, was Sie Fragen.
- Ich kann nicht senden Sie ein Foto, aber ich kann via E-Mail, weil das forum lässt mich nicht. So die den Buchstaben oben entsprechen den Spalten. Spalte C (Slot-Nummer) ist die excel-Spalte mit vielen Werten, und ich möchte ein array zu speichern alle diese Werte, dann ist auch das speichern der Werte in Spalte J & K für XPos und YPos. Nach dem abrufen dieser Daten, die ich gerne weitergeben möchte Sie alle in einer Funktion für eine neue array-Ausgang..und dann konvertieren Sie die Ausgabe in eine Reihe und legen Sie es in der Spalte A für die Comm.
- Was sind die
Barcode
Typ verticles in Ihrem Blatt Spalten ? :$
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich besorgt, betrachten Sie Ihre Probe - appolgy aber wirklich nicht
decipherable
... Also bleibe ich mit Ihrer Frage, Titel und Kommentar:VBA Excel Store Range as Array, extract cell values for formula. Offset for other variables
.Wie Shop als Array:-
Gewusst wie: array in eine Funktion, der ein array als parameter und gibt ein array zurück:-
Ausgabe Eindimensionalen array zu Arbeitsblatt-Bereich: -
- Ausgang Multi-Dimensionales array zu Arbeitsblatt-Bereich: -
ReDim
?Transpose
zweimal das gleiche Ergebnis nicht mitTranspose
überhaupt? Soweit ich feststellen konnte, ist die Antwort ja. Außerdem, der einzige Grund, ich kann sehen, für die anderenTranspose
wäre UBound prüfen Sie die 2. dimension, die sich einigermaßen erreicht, indem Sie einfach mitUbound(singleDArray, 2)
. Ich denke, dass Sie möglicherweise in der Liebe mit ihm zu dem Maße, dass Sie finden Ausreden, es zu benutzen oder nicht, ob es Sinn macht.Transpose
ist nur sinnvoll, wenn es hilfreich ist. @bonCodigo