Считывание диапазона в массив
view plainprint? 1. Sub example_1() 'двумерные массивы (на выбор) 2. Dim x 3. x = Range("A1", Cells(Rows.Count, 1).End(xlUp)).Value 4. x = Range("A1", Cells(5, Columns.Count).End(xlToLeft)).Value 5. x = Range("A1").CurrentRegion.Value 6. With Sheets("Sheet1") 7. x = .Range("A1:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value 8. x = .UsedRange.Value 9. End With 10. End Sub view plainprint? 1. Sub example_2() 'одномерный массив (на выбор), индексация всегда с 1 2. Dim x 3. With Range("A1", Cells(Rows.Count, 1).End(xlUp)) 'из столбца 4. x = WorksheetFunction.Transpose(.Value) 5. End With 6. With WorksheetFunction 'из строки 7. x = .Transpose(.Transpose(Range("A1", Cells(1, Columns.Count).End(xlToLeft)).Value)) 8. End With 9. x = Application.Index(Range("A1", Cells(1, Columns.Count).End(xlToLeft)).Value, 1, 0) 10. End Sub view plainprint? 1. Sub example_3() 'одномерный массив без дубликатов из столбца с заголовком 2. Dim x, i& 3. i = ActiveSheet.UsedRange.Columns(1).Rows.Count 4. x = Filter(Evaluate("TRANSPOSE(IF(COUNTIF(OFFSET(a2:a" & i & ",0,0,ROW(1:" & i - 1 & _ 5. ")),a2:a" & i & ")=1,a2:a" & i & ",CHAR(126)))"), "~", 0) 6. Range("B1").Resize(UBound(x) + 1).Value = WorksheetFunction.Transpose(x) 7. End Sub view plainprint? 1. Sub example_4() 'одномерный массив без дубликатов из столбца без заголовка 2. Dim x 3. With ActiveSheet.Cells(1).CurrentRegion.Columns(1) 4. x = Filter(.Parent.Evaluate("TRANSPOSE(IF(COUNTIF(OFFSET(" & .Address & ",0,0,ROW(1:" & .Rows.Count & _ 5. "))," & .Address & ")=1," & .Address & ",CHAR(126)))"), "~", 0) 6. End With 7. Range("B1").Resize(UBound(x) + 1).Value = WorksheetFunction.Transpose(x) 8. End Sub view plainprint? 1. Sub example_5() 'одномерный массив без пустых значений из столбца 2. Dim x 3. With Range("A1", Cells(Rows.Count, 1).End(xlUp)) 4. x = Split(Replace(Join(Filter(Split("~" & Join(Application.Transpose(.Value), "~|~") & "~", "|"), _ 5. "~~", False), "|"), "~", ""), "|") 6. End With 7. Range("B1").Resize(UBound(x) + 1).Value = WorksheetFunction.Transpose(x) 8. End Sub view plainprint? 1. Sub example_6() 'массив из строки (только для англ. алфавита!) 2. Dim myStr As String, x: myStr = "AsDfghErt" 3. x = Split(StrConv(myStr, 64), Chr(0)) 4. Range("B1").Resize(UBound(x)).Value = WorksheetFunction.Transpose(x) 5. End Sub |
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.