Sub Макрос1()
Dim myArray() As Long 'в зависимости от значений
ReDim myArray(1 To 100)
Dim i&
For i = 1 To 100
myArray(i) = Cells(i, 1)
Next i
End Sub
Dim arr() As Variant
arr = Application.WorksheetFunction.Transpose(Range("A1:A100").Value)
Sub test()
Dim x1, x2, x3, y1, y2, y3, z1, z2, z3
x1 = Range("A1:A100")
x2 = Range("INDEX((A1:A100,B1:B100,C1:C100),,,2)")
x3 = Range("OFFSET(A1:A100,2,1)")
y1 = Evaluate("A1:A100")
y2 = Evaluate("INDEX((A1:A100,B1:B100,C1:C100),,,2)")
y3 = Evaluate("OFFSET(A1:A100,2,1)")
z1 = [A1:A100]
z2 = [INDEX((A1:A100,B1:B100,C1:C100),,,2)]
z3 = [OFFSET(A1:A100,2,1)]
End Sub
@Nik писал(а):Эти все варианты закидывают диапазон в двуменрный массив. А как без цикла получить из этого одномерный массив ?
Sub test()
MsgBox Join(Application.Transpose(Range("A1:A10")), "")
MsgBox Join(Application.Transpose(Application.Transpose(Range("A1:J1"))), "")
End Sub
@Nik писал(а):Она выбирает цифры "55" из диапазона А1:А10, если они там есть. Но мне надо получить не сами значения, а ячейки, где они лежат....
Sub test()
Dim strAddr As String
Dim arrRef() As Variant
Dim strRng As String
strAddr = ActiveSheet.Range("A1:A10").Address(, , , True)
arrRef = Application.Transpose(Evaluate("IF(" & strAddr & "=55,ADDRESS(ROW(" & strAddr & "),COLUMN(" & strAddr & ")),"""")"))
'arrRef = Application.Transpose([IF(A1:A10=55,ADDRESS(ROW(A1:A10),COLUMN(A1:A10)),"")])
strRng = Replace(Application.Trim(Join(arrRef, " ")), " ", ",")
ActiveSheet.Range(strRng).Select
End Sub
@Nik писал(а):А как быть, если сцепляемые элементы лежат в формуле массива в одной ячейке ?
@Nik писал(а):Большое спасибо.... Ты как всегда раскрываешь глаза на широчайшие возможности ВБА
А я, вот, ещё попробовал так: задал имя формуле:
=ДВССЫЛ(ЕСЛИ(Лист1!$A$1:$A$10=55;АДРЕС(СТРОКА(Лист1!$A$1:$A$10);СТОЛБЕЦ(Лист1!$A$1:$A$10));"A1"))
Если ввести формулу в ячейку - вроде как работает.... даже можно поверху сделать СМЕЩ(....). Но если ввести в область имён - выдаёт только ссылку на первую ячейку
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 84