Вы можете попробовать этот код для выполнения такой задачи.
Sub FindMatchAndThenDeleteColumn()
FindContent = Worksheets("Sheet2").Range("J19")
For Each Cell In Worksheets("Sheet1").UsedRange.Cells
If Cell.Value = FindContent Then Columns(Cell.Column).Delete
Next
End Sub
Введите код, указанный в вашем workbook's module. Обратите внимание, что и Cell
выбираются случайным образом, вы можете использовать любые имена. Я использую
For Each Cell In Worksheets("Sheet1").UsedRange.Cells
к петле через каждую ячейку, которая используется в Лист1. Он проверит все в диапазоне от ячейки A1 до последней ячейки с данными (нижняя правая ячейка). Если содержимое ячейки J19 является текстом, вы можете объявить переменную FindContent
как тип String
, то есть Dim FindContent As String
. Если это число, вы можете объявить его как тип Long
или тип Single
или любой тип номера, который соответствует содержимому. Здесь я не объявляю это, что означает, что он по умолчанию не соответствует типу Variant
. И поскольку вы новичок в VBA, вы можете узнать его с Excel Easy. Надеюсь это поможет.
Добро пожаловать в S.O! Вы что-то пробовали? Если да, пожалуйста, предоставьте код, посмотрите на [tour] (http://stackoverflow.com/tour) и [как спросить] (http://stackoverflow.com/help/how-to-ask). Дружественное напоминание: StackOverflow не является поставщиком услуг «мы для вас». [Введение в VBA] (https://blog.udemy.com/excel-macros-tutorial/) Подсказка: вы никогда не найдете решения для своей конкретной проблемы, сломайте ее маленькими кусочками, сначала [«Найдите слово excel vba "] (http://www.ozgrid.com/VBA/find-method.htm), затем адаптируйте его к вашим потребностям. – Sgdva