Excel VBA за намиране на стойност в колона (6 подходящи примера)

  • Споделя Това
Hugh West

В MS Excel често ни се налага да търсим или намираме стойности в набора от данни. Това може да бъде намиране на данни в редовете или колоните. За щастие Excel предоставя различни функции и формули за изпълнение на тези задачи. С помощта на Excel VBA код можем да автоматизираме тази задача за търсене или намиране на стойности. В тази статия ще видим различни начини за намиране на стойност в колона в Excel VBA.

Изтегляне на работна тетрадка за практика

Намиране на стойност в Column.xlsm

6 примера за VBA за намиране на стойност в колона в Excel

Нека имаме набор от данни с информация за продукти с техните Идентификатор на продукта , Марка , Модел , Единична цена , и Идентификатор на поръчката Нашата задача е да открием съвпадащите Идентификатор на поръчката . Сега нашата задача е да открием Идентификатор на поръчката свързани с Идентификатор на продукта .

1. Намиране на стойност в колона чрез функцията VBA Find

В първия пример ще използваме Функция Намиране във VBA за намиране на стойност в дадена колона.

📌 Стъпки:

  • Отидете на името на листа в долната част на листа.
  • Натиснете десния бутон на мишката.
  • Изберете Вижте кода опция от списъка.

  • Отваря се прозорецът VBA. След това изберете Модул от Вмъкване на опция

  • Сега напишете следния код в конзолата VBA
 Sub Find_Value() Dim ProductID As Range Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "No Matched Data Found !!" End If End Sub 

  • Сега Вмъкнете бутон в набора от данни.
  • Отидете в Разработчик таб.
  • Изберете Бутон ( Контрол на формата ) от Вмъкване на раздел.

  • Дайте каквото и да е име на бутона. Например аз го давам като Търсене .

  • Присвояване на кода на този бутон.
  • Изберете бутона и натиснете десния бутон на мишката.
  • Изберете Присвояване на макрос от списъка.

  • Изберете желания макрос от Присвояване на макрос прозорец.
  • След това натиснете OK .

  • Сега напишете всеки Идентификатор на продукта и кликнете върху Търсене бутон.

Виждаме, че не се показва съвпадение, тъй като този номер на продукта не е в списъка.

  • Поставете друг Идентификатор на продукта и отново натиснете бутона Търсене бутон.

Получаваме номера на поръчката за дадения Идентификатор на продукта .

Прочетете още: Как да получите стойността на клетката по ред и колона в Excel VBA

2. VBA за намиране на стойност от различни работни листове

Сега в този раздел ще направим същото, но за различни работни листове. Нека предположим, че информацията за продукта ни е в Лист 2 , а полето за търсене е в Лист 3 . Сега ще напишем кода VBA, за да можем да търсим ID на поръчката, като използваме ID на продукта от Лист 3 .

Лист 2:

Лист3:

📌 Стъпки:

  • Следвайте същите стъпки от стъпка 1 към стъпка 2 от предишния метод, за да отворите конзолата VBA
  • Сега напишете следния код в конзолата VBA
 Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub 

  • Сега отново вмъкнете бутон като предишния.
  • След това задайте макрокода на бутона.

  • Въведете всички Идентификатор на продукта и кликнете върху Изпълнение на бутон

Прочетете още: Търсене на стойност в колона и връщане на стойност на друга колона в Excel

3. Намиране и маркиране на стойност в колона

Нека да видим как можем да открием стойности от дадена колона, като ги маркираме. За целта нека приемем същото множество от данни по-горе с допълнителна колона, наречена Статус на доставка . Сега нашата задача е да маркираме стойностите в Статус на доставка колона, които са В очакване .

📌 Стъпки:

  • Следвайте същата стъпка от стъпка 1 към стъпка 2 както при предишния метод за отваряне на конзолата VBA
  • Сега напишете следния код в конзолата VBA
 Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Цикъл до rngFind_Value.Address = strAddress_First End If End Sub 

  • Сега отидете в работния лист и стартирайте кода.
  • Вижте резултатите в таблицата.

Прочетете още: Как да намерите най-високата стойност в колона на Excel (4 метода)

4. VBA за намиране на стойности в колона с помощта на заместващи символи

Накрая ще видим как можем да търсим или намираме стойности в колони, като използваме заместващи знаци в Excel VBA. Отново ще използваме същата съвкупност от данни по-горе за този метод. Нашата задача е да намерим цените на продуктите, като използваме техния модел. Можем да въведем пълното име или последните/първите знаци на Идентификатор на продукта .

📌 Стъпки:

  • Следвайте същата стъпка от стъпка 1 към стъпка 2 както при предишния метод за отваряне на конзолата VBA
  • Сега напишете следния код в конзолата VBA
 Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub 

  • Отново вмъкнете бутон като предишния.
  • Сега задайте макрокода на бутона.

  • Сега въведете всяка частична Идентификатор на продукта и натиснете бутона Изпълнение на бутон.

Прочетете още: Как да намерите най-ниската стойност в колона на Excel (6 начина)

5. Excel VBA за намиране на максимална стойност в колона

Тук искаме да намерим максималната стойност на дадена колона, като използваме кода VBA.

📌 Стъпки:

  • Искаме да разберем каква е максималната цена.

  • Сега поставете следния код VBA в нов модул.
 Sub Column_Max() Dim range_1 As Range Set range_1 = Application.InputBox(prompt:="Select Range", Type:=8) Max_Column = WorksheetFunction.Max(range_1) MsgBox Max_Column End Sub 

  • След това натиснете бутона F5 за да стартирате кода VBA.
  • Сайтът Вход се появява диалогов прозорец.
  • Изберете обхвата от набора от данни.

  • Накрая натиснете бутона OK бутон.

Виждаме, че максималната стойност е показана в диалоговия прозорец.

6. Excel VBA за намиране на последната стойност в колона

Тук искаме да знаем стойността на последния ред или клетка от определена колона. Например искаме да знаем последния продукт от колоната Product

📌 Стъпки:

  • Въведете VBA код по-долу в модула.
 Sub last_value() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub 

  • След това стартирайте кода, като натиснете бутона F5 бутон.

Последната стойност се показва в диалоговия прозорец.

Прочетете още: Как да намерите последното появяване на стойност в колона в Excel (5 метода)

Нещата, които трябва да запомните

Някои често срещани грешки:

  • Грешка: Една стойност наведнъж. Защото НАМЕРЕТЕ Методът може да намери само една стойност в даден момент.
  • Грешка: #NA в VLOOKUP Ако търсената стойност не присъства в дадената съвкупност от данни, функцията ще върне това #NA грешка.
  • Range("Cell_Number").ClearContents се използва за изтриване на предишната стойност от клетката. В противен случай предишната стойност трябва да се премахне ръчно.

Заключение

Това са някои от начините за намиране на стойности в колони с помощта на VBA код в Excel. Показах всички методи със съответните примери, но може да има и много други повторения. Обсъдих и основите на използваните функции. Ако имате друг метод за постигане на това, моля, не се колебайте да го споделите с нас. Посетете нашия уебсайт ExcelWIKI за още интересни статии за Excel.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.