2015-03-02 4 views
1

Я искал форумы, но я действительно пытаюсь заставить часть моего кода работать. В основном идея состоит в том, чтобы искать лист 1 и копировать один или несколько столбцов в зависимости от критериев для конкретного рабочего листа. т. Е. Если в листе 1 столбцы 1 и 3 содержится «копия 01», то скопируйте оба столбца на лист 2, а если в столбцах 1 и 2 листа 1 «копия 02», то скопируйте обе колонки на лист 3 и т. Д.Excel VBA - количество столбцов с использованием вариантов

I может подсчитывать строки с использованием кода, но не может подсчитывать столбцы. Кажется, это связано с тем, что мы не поместили диапазон столбцов, но у меня нет никаких идей, чтобы исправить это! Любая помощь приветствуется.

'Row  
Dim NR As Long 
Dim d As Variant 

d = ws1.Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value 
    For NR = 1 To UBound(d, 1) 

'column 
Dim NC As Long 
Dim e As Variant 

e = ws1.Range(Cells(1, Columns.Count).End(xlToLeft).Column).Value 
    For NC = 1 To UBound(e, 1) 

Спасибо, Стюарт

ответ

1

Вы хотите:

e = range("A1:" & split(cells(1,cells(1,columns.Count).end(xlToLeft).column).address(true,false), "$")(0) & "1").Address 

Клетки (1, columns.count) .end (xlToLeft) .column) получает номер последнего столбца (для пример 13 для «М»).

Вводя это в ячейки (1, lastcolNum), получает ячейку, которая представляет ячейку в первой строке этого столбца (например, Cell M1).

Адрес (правда, ложь,) метод получает ссылку на ячейку со знаком доллара до строки, но не перед буквой столбца (например, «М $ 1»

Функция сплит возвращает массив, который делит входной сигнал строка с символом «$» (например, массив - («M», «1»)

(0) возвращает 0-й элемент в возвращаемом массиве (например, «M») Затем, помещая это в функция диапазона возвращает диапазон (например) «A1: M1»

Я не совсем уверен, что вы пытаетесь сделать с UBound fun здесь. Было бы больше смысла, чтобы сделать

e = cells(1,columns.count).end(xlToLeft).column 

, а затем петлю через

For N = 1 To e 

Как это будет проходным каждого столбца.

+0

Большое спасибо за это, он отлично работает в моем коде. Я участвую в том, что я продвигаюсь (отсюда и проблемы!) И имел некоторый код rondebruin, который работал для подсчета строк, который я пытался изменить, чтобы подсчитывать столбцы, но не повезло. –

Смежные вопросы