2016-03-07 2 views
-1

У меня есть таблица Excel.Создайте один столбец таблицы Excel (исключены нули)

И мне нужно записать его данные в один столбец, строка за строкой, каждая строка «прочитана» слева направо, исключены нули. Пожалуйста, посмотрите на картинку, чтобы лучше понять:

What I have and what I need to get

Есть ли способ сделать это быстро с помощью VBA? Я пытался использовать только формулы и работал, но потребовалось несколько шагов (создание столбца, исключая нули, переписывание столбца ...) и действительно замедлило весь процесс.

ответ

1

Чтобы скопировать всех не пустые значения из диапазона в одном столбце:

Dim source(), arr(), r&, c&, i& 

' read the data from the range 
source = [A1:G3].Value2 

' copy the non empty value 
ReDim arr(1 To UBound(source, 1) * UBound(source, 2), 1 To 1) 
For r = 1 To UBound(source, 1) 
    For c = 1 To UBound(source, 2) 
    If source(r, c) <> Empty Then 
     i = i + 1 
     arr(i, 1) = source(r, c) 
    End If 
    Next 
Next 

' write the data back to the sheet 
[A7].Resize(i, 1) = arr 
Смежные вопросы