Я просто хотел получить 2 столбца (предположим, что они будут принимать значения, такие как числа для координат x и y) и делить ВСЕ значения (aka строки) из столбца (скажем) A (для x) на определенное значение в столбце C. И я хотел бы сделать то же самое для столбца B (для Y) в столбце D.Excel 2011 vba: Как закодировать строки столбца и умножить все строки на одно значение?
Вот как далеко я добрался.
(почти забыл рассказать вам, что пропорции_худож и пропорциональная ширина получаются путем деления H3 и I3 (например, 1024 x 769) на H4 и I4 (800 x 600). Имея эти числа H3/I3 (который равен хранится в proportion_width) и H4/I4 (который хранится в proportion_height) Мне просто нужно знать, как умножить эти два значения формы столбца A в C и из колонки B до D. Вот так!
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
Я добавил код моего коллеги здесь, и я ПОЛНОСТЬЮ попал туда! Всякий раз, когда я запускал макрос, он говорил «# DIV/0!».
Хммммм. Интересно! И как мне это проверить? Должен ли я поместить весь ваш код в новый модуль? А затем назначьте его кнопке? – user402429
вы могли бы это сделать. или вы можете подставить свой 'For i = 2 To current_row ... Следующий i' блок с моим кодом. BTW, как только вы нашли, что мой ответ решил ваш вопрос, вы могли бы также отметить его как принятый! Спасибо! – user3598756
Я впечатлен! Это действительно близко к решению! Спасибо за вашу помощь! Однако я получаю столбец C, полный «# DIV/0!». Но я считаю, что мы действительно близки. – user402429