Я работаю над макросом, который будет работать на нескольких листах в одной книге, переключение между листами и копирование/вставка данных на один мастер-лист.Выбор диапазона столбцов Excel VBA, выбор неправильных столбцов
Моя проблема в том, Я использую приведенный ниже код, и ТОЧНЫЙ такой же код отлично работает в главном листе, но как только я переключусь на другой лист в коде VBA и использую его, он выбирает все столбцы, начиная с столбца 1, до конца данные.
Идея нижеследующего кода заключается в том, чтобы начать в столбце 1 и найти столбец под названием «Composite Rating». Затем я хочу УДАЛИТЬ все столбцы, начиная со столбца 3, до столбца Composite Rating.
Может ли кто-нибудь сказать мне, что я делаю неправильно? Большое спасибо за любую помощь!
For counter = 1 To 40 Step 1
Cells("1", counter).Select
strval = ActiveCell.Value
If strval = "Composite Rating" And counter <> 3 Then
Range(Cells(1, 3), Cells(1, counter - 1)).EntireColumn.Select
Selection.Delete Shift:=xlLeft
Exit For
End If
Next counter
EDIT: Извините, должен был упомянуть о моей установке. Я использую Excel 2007 в Windows 7. Я пробовал файлы как xls, так и xlsx, то же самое.
Awesome !! Это сработало, спасибо! Фактически, когда я изменил свой собственный код на «Удалить» вместо «Выбрать», а затем «Выбор.Делет», он тоже сработал! Вы когда-нибудь видели, где использовать EntireColumn.Select на самом деле выбирает ВСЕ столбцы, несмотря ни на что? Ваш код более эффективен, используя функцию «Найти», поэтому я буду реализовывать это, вместо того, чтобы перебирать столбцы. Я относительно новичок в VBA, поэтому я должен искать список функций :) Еще раз спасибо! – zpert
Один быстрый вопрос ... Было ли что-то не так с повторным использованием переменной rng, чтобы найти другие диапазоны в том же Sub? Я не знал, как VBA работал со ссылочными переменными, указателями, областью видимости и т. Д., Если возникла проблема с его сбросом, не влияя на исходный диапазон, на который он был установлен. Благодаря! – zpert
@zpert Вы можете повторно использовать переменную rng. Но поскольку вы новичок в мире vba, я wud говорю, объявляю новую переменную и использую ее, чтобы избежать какой-либо путаницы. – 2013-03-10 16:56:49