Ich wollte nur 2 Spalten (stellen Sie sich vor, dass sie Werte wie Zahlen für X- und Y-Koordinaten hosten) und ALLE Werte (aka Zeilen) von Spalte (sagen wir) A (für x) durch einen bestimmten Wert in der Spalte C. Und ich möchte das Gleiche für Spalte B (für Y) in Spalte D tun.Excel 2011 vba: Wie Schleifen Zeilen einer Spalte und multiplizieren alle Zeilen mit einem einzelnen Wert?
So weit habe ich gekommen.
(fast vergessen zu sagen, dass die proportion_höhe und proportion_breite erhalten durch die einteilung von H3 und I3 (zb 1024 x 769) durch H4 und I4 (800 x 600). Haben diese zahlen H3/I3 (was ist gespeichert in proportion_width) und H4/I4 (die in proportion_height gespeichert ist) ich muss nur wissen, wie diese zwei Werte Form Spalte A bis C vermehren und von Spalte B bis D. das ist es!
Sub landmarks_resizer()
' Creating variables to store the proportion of the new map. Whatever (size) it is.
Dim proportion_width As Long
Dim proportion_height As Long
Dim size_of_column As Long
Dim current_row As Long
' Just checking for NON zero values to avoid errors...
If H3 > 0 And H4 > 0 And I3 > 0 And I4 > 0 Then
proportion_width = H3/H4
proportion_height = I3/I4
End If
' Changing headers of these columns to better identify them with new values
Range("C1") = "Resized X"
Range("D1") = "Resized Y"
' Go to the very last row of column A. And from there goes Up. Which will go to the last row of column A. :-)
Range("A" & Rows.Count).End(xlUp).Select
current_row = ActiveCell.Row
With Range("H1") '<--| reference a "helper" free cell (change "H1" to your needs)
.Value = proportion_width '<--| store the dividing factor in the "helper" cell
.Copy '<--| store the dividing factor in clipboard
End With
With Range("A1", Cells(Rows.Count, 1).End(xlUp))
.Offset(, 2).Value = .Value '<--| copy column A values to columns C
.Offset(, 2).PasteSpecial Operation:=xlPasteSpecialOperationDivide '<--| divide column C values by the value in clipboard
End With
Range("H1").ClearContents '<--| clear the content of the "helper" cell
Application.CutCopyMode = False '<--| release the clipboard
End Sub
I hinzugefügt der Code von meinem Kollegen hier und ich bin fast da! Immer wenn ich das Makro lief, heißt es "# DIV/0!".
wirken kann. Interessant! Und wie soll ich das testen? Soll ich deinen gesamten Code in ein neues Modul einfügen? Und dann einer Taste zuweisen? – user402429
könnten Sie das tun. Oder Sie können Ihre 'For i = 2 To current_row ... Next i' Block mit meinem Code ersetzen. BTW, sobald Sie meine Antwort gefunden haben, lösten Sie Ihre Frage, die Sie auch als angenommen markieren könnten! Danke! – user3598756
Ich bin beeindruckt! Es ist wirklich nah an einer Lösung! Danke für deine Hilfe bis jetzt! Ich bekomme Spalte C, jedoch voll von "# DIV/0!". Aber ich glaube, wir sind sehr nah dran. – user402429