Можно ли указать номер ячейки для vba с помощью двух переменных

Dim VAR1, VAR2, VAR3, VAR4, AS variant

VAR1 = Worksheets("Sheet3").Cells(3, "J").Value 
VAR2 = Worksheets("Sheet3").Cells(3, "K").Value 
VAR3 = Worksheets("Sheet3").Cells(3, "L").Value 
VAR4 = Worksheets("Sheet3").Cells(3, "M").Value

=sheet1.range(VAR1,VAR2).COPY
=Sheet3.range(VAR2,VAR4).Pastespecial

для вышеизложенного я дал номера ячеек в Var1 Var2...Var4

Можно ли определить местоположение ячейки с помощью двух переменных,

Var1=B
Var2=5

и как-то объединить их, чтобы получить B5, я хочу сделать это в самом макросе.


person Viladimir    schedule 08.12.2012    source источник
comment
Два небольших замечания: 1. Вместо rng1.Copy и rng2.PasteSpecial(xlPasteValues) можно просто использовать rng2.Value = rng1.Value 2. Вместо букв для столбцов можно также использовать просто цифры. Не знаю, применимо ли это в вашей ситуации, но чаще всего в VBA это удобнее, чем с помощью букв...   -  person Peter Albert    schedule 09.12.2012


Ответы (1)


Ты сможешь. VBA позволяет объединять строки в присваивании диапазона. В этом случае это выглядит так:

Sub test()
Dim Var1 As Variant
Dim Var2 As Variant
Dim rng As Excel.Range

Var1 = "B"
Var2 = "5"
Set rng = ActiveSheet.Range(Var1 & Var2)
End Sub
person Doug Glancy    schedule 08.12.2012
comment
+1. FWIW Я бы использовал строки, а не варианты - не то, чтобы это имело значение, просто чтобы кодеру было понятнее, в результате получится строка - person brettdj; 09.12.2012
comment
@brettdj, согласен. Я начал писать комментарий об OP, используя структуру Dim x, y, z as Variant, и что, в отличие от того, что они могли подумать, он объявит их всех как ... Variants. Было бы более ценным комментарием, если бы они были объявлены как Strings. - person Doug Glancy; 09.12.2012