Я пытаюсь получить фрагмент кода для очистки данных в некоторых ячейках, используя ссылки столбца. Я использую следующий код:
Для этого, однако, я получаю сообщение об ошибке в первом разделе .Cells, почему это?
vba excel-vba excel
8 ответов
22 Решение Sam [2013-10-25 18:38:00]
Вы можете получить доступ ко всему столбцу в диапазоне, используя объект Worksheet.Columns
должен очистить содержимое столбца A
Существует также объект Worksheet.Rows , если вам нужно сделать что-то подобное для строк
Ошибка, которую вы получаете, вероятно, связана с отсутствием блока.
О блогах можно прочитать здесь: Справка Microsoft
Как отметил Гэри Студент, вам нужно будет удалить точку до Cells , чтобы заставить код работать так, как вы его первоначально писали. Я не могу быть уверен, поскольку вы включили только одну строку кода, но ошибка, которую вы получили, когда вы удалили точки, может иметь какое-то отношение к тому, как вы определили свои переменные.
Я запустил вашу строку кода с переменными, определенными как целые, и он работал:
Я не думаю, что инструкция With подходит для строки кода, которую вы поделили, но если вы ее использовали, With будет в начале строки, которая определяет объект, который вы манипулируете, Вот ваш код, переписанный с помощью ненужного оператора With :
With предназначены для того, чтобы избавить вас от повторного набора кода и упростить чтение кода. Это становится полезным и целесообразным, если вы делаете нечто большее с одним объектом. Например, если вы хотите также повернуть красный столбец и добавить толстую черную рамку, вы можете использовать оператор With следующим образом:
В противном случае вам нужно объявить диапазон для каждого действия или свойства, например:
Надеюсь, это даст вам представление о том, почему Гэри Стьюден считал, что компилятор может ожидать With (хотя это было неуместно) и как и когда With может быть полезен в вашем коде.
Метод Range.Clear для полной очистки диапазона из кода VBA Excel. Методы очистки отдельных свойств и их групп в ячейках. Примеры использования.
Методы очистки ячеек
Метод | Очищаемые свойства | Примечание |
Range.Clear | Почти все свойства | Ширина и высота ячеек не изменяются |
Range.ClearComments | Комментарии | Для Excel в составе Office 365 |
Range.ClearContents | Формулы и значения | Исходное форматирование сохраняется |
Range.ClearFormats | Свойства, задающие форматы | В том числе отмена объединения ячеек |
Range.ClearHyperlinks | Гиперссылки | Текст и форматирование сохраняются |
Range.ClearNotes | Примечания и заметки | Примечания – для локальных программ Excel, заметки – для Excel в составе Office 365 |
Range.ClearOutline | Структура данных | Смотрите, что такое — структурирование данных |
Range – выражение, возвращающее диапазон ячеек.
Примеры использования
1. Удаление гиперссылки из ячейки A1
Cells(1, 1).ClearHyperlinks
2. Очистка диапазона A1:L50 от формул и значений
Range("A1:L50").ClearContents
3. Очистка всех свойств ячеек в столбцах A:K
Columns("A:K").Clear
4. Очистка форматирования ячеек в строках 1:20
Rows("1:20").ClearFormats
Методы очистки диапазонов ячеек в VBA Excel возвращают очищаемые свойства ячеек к значениям по умолчанию. К таким, как на вновь созданном стандартном рабочем листе. При любых методах очистки высота строк и ширина столбцов не изменяются.
Я пытаюсь получить кусок кода, чтобы очистить данные в некоторых ячейках, используя ссылку столбцов. Я использую следующий код:
Чтобы сделать это, тем не менее я получаю сообщение об ошибке в первой секции .Cells, почему это?
Вам нужно С заявлением перед этим. Или сделать .Cells в клетки
Вы можете получить доступ к всему столбцу как диапазон использования Worksheet.Columns объекта
следует очистить содержимое столбца
Существует также Worksheet.Rows объект , если вам нужно сделать что — то подобное для строк
Ошибка, которую вы получаете, вероятно, из-за отсутствующим с блоком.
Вы можете прочитать с блоками здесь: Microsoft Help
Как уже упоминалось студент Гэри, вам нужно будет удалить точку перед , Cells чтобы сделать код работы , как вы изначально написали. Я не могу быть уверен, так как вы включили только одну строку кода, но ошибка , которую вы получили , когда вы удалили точки , возможно , что — то делать с тем, как вы определили ваши переменные.
Я побежал вашу строку кода с переменными, определенными как целые числа, и она работала:
Я не думаю, что With заявление подходит к строке кода вы поделились, но если бы вы использовали один, то With будет в начале строки , которая определяет объект , который вы манипулируете. Вот ваш код переписан используя ненужное With заявление:
With заявления призваны избавить вас от перепечатывания код и сделать ваше кодирование легче читать. Это становится полезным и целесообразным , если вы делаете больше чем одну вещь с объектом. Например, если вы хотите , чтобы также включить колонки красными и добавить густую черную рамку, вы можете использовать With подобное заявление:
В противном случае вы должны объявить диапазон для каждого действия или свойства, как это:
Я надеюсь , что это дает вам ощущение того , почему студент Гари считал , что компилятор может быть ожидал With (хотя это было неуместно) и , как и когда With может быть полезным в вашем коде.