ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ vba: ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ для Excel с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΈ описаниСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠ°ΠΊΡ€ΠΎΡ для объСдинСния пустых ячССк Π² строках Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Excel. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ всС пустыС ячСйки Π² строках Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel.

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ пустыС ячСйки Π² строках с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса

Π£ нас ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΡ‚Π΄Π΅Π»ΠΎΠ². Π‘ΡƒΠΌΠΌΡ‹ распрСдСлСны ΠΏΠΎ мСсяцам. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ суммы ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»Ρƒ взяты ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… листов Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Excel, Π³Π΄Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠΎ Π½ΠΈΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° всС мСсяца Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π³ΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Π²Ρ‚ΠΎΡ€ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° распрСдСлил названия Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ мСсяцам, Π° ΠΈ ΠΏΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°ΠΌ. БоотвСтствСнно Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² столбцС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ мСсяца с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ начинаСтся этот ΠΆΠ΅ ΠΊΠ²Π°Ρ€Ρ‚Π°Π». Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π³ΠΎΠ΄ ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° Π΄Π°Ρ‚Ρƒ формирования ΠΎΡ‚Ρ‡Π΅Ρ‚Π°. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π½Π° рисункС:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° для СТСмСсячных ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ с распрСдСлСниСм ΠΏΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°ΠΌ.

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ячСйки Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ячСйка с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π° Π±Ρ‹Π»Π° объСдинСна с пустыми ячСйками находящиСся справа ΠΎΡ‚ Π½Π΅Π΅. И Ρ‚Π°ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ названия ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°.

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ ячССк Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ сил, особСнно ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ нСсколько Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Π”Π° ΠΈ количСство ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Ρ… ячССк Π½Π΅ всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ – Π° это ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ошибки Π² структурС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Π Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ макрос для автоматичСского Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic (ALT+F11):

И вставим Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅: Β«InsertΒ»-Β«ModuleΒ». ПослС запишСм Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠΎΠ΄ VBA-макроса:

Sub JoinEmpty()
Dim i As Long
For i = 1 To Selection.Columns.Count
Β Β If Selection.Cells(1, i) = "" Then
Β Β ActiveSheet.Range(Selection.Cells(1, i - 1), Selection.Cells(1, i)).Merge
Β Β End If
Next
Selection. HorizontalAlignment = xlVAlignCenter
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ пустых ячССк, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ B1:L2. ПослС Ρ‡Π΅Π³ΠΎ запуститС макрос: Β«Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΒ»-«Код»-Β«ΠœΠ°ΠΊΡ€ΠΎΡΡ‹Β»-Β«JoinEmptyΒ»-Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ». Π―Ρ‡Π΅ΠΉΠΊΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² соотвСтствии с ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ²Π°Ρ€Ρ‚Π°Π»Π°, ΠΊΠ°ΠΊ Π½Π° рисункС:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ всСм ячСйкам ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, слСва Π½Π° ΠΏΡ€Π°Π²ΠΎ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ каТдая ΠΈΠ· Π½ΠΈΡ… Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если провСряСмая ячСйка Π½Π΅ содСрТит Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (пуста), макрос ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π΅Π΅ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ячСйкой. А Ссли ΠΆΠ΅ провСряСмая ячСйка содСрТит ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ макрос пропускаСт Π΅Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ΄Π° Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ вСсь тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТится Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Π·Π°Π΄Π°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ свойство Π² строкС:

Selection.HorizontalAlignment = xlHAlignCenter

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этой вСрсии ΠΊΠΎΠ΄Π° Ссли ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки содСрТащиС пустыС ячСйки, Ρ‚ΠΎ послС запуска макроса Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ ячСйки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС. Π”Π°Π»Π΅Π΅ рассмотрим, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш макрос, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк.

ο»Ώ

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ всС пустыС ячСйки Π²ΠΎ всСх строках Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel

Π§Ρ‚ΠΎ Ссли Π² нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅ потрСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ объСдинСниС пустых ячССк сразу Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строках – ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ? Для этого Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько строк Π² ΠΊΠΎΠ΄ нашСго макроса. Но сначала ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Допустим Π½Π°ΠΌ для послСдних Ρ‚Ρ€Π΅Ρ… ΠΎΡ‚Π΄Π΅Π»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° 2 полугодия. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… строк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‚ΠΎΠ³Π΄Π° сначала ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

Dim j As Long

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ всСм ячСйкам Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строки Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ строку с ΠΊΠΎΠ΄ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ строкам Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк:

For j = 1 To Selection.Rows.Count

Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ Π·Π°Π±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°:

Next

Π’ΠΎ всСх экзСмплярах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Cells, для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° вмСсто числа 1 Π²Π²Π΅Π΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ j:

Selection. Cells(i,j)

Полная вСрсия ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° макроса:

Sub JoinEmpty()
Dim i As Long
Dim j As Long
For j = 1 To Selection.Rows.Count
Β Β For i = 1 To Selection.Columns.Count
Β Β Β Β If Selection.Cells(j, i) = "" Then
Β Β Β Β ActiveSheet.Range(Selection.Cells(j, i - 1), Selection.Cells(j, i)).Merge
Β Β Β Β End If
Β Β Next
Next
Selection.HorizontalAlignment = xlVAlignCenter
End Sub

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°ΠΌ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ B1:L12 ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ макроса:

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: макрос для объСдинСния пустых ячССк Π² столбцах Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Если пСрвая ячСйка (Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ) Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° – пуста, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ объСдСна со смСТной ячСйкой слСва ΠΎΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Поиск Π½Π° листС Excel, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Find Π½Π° VBA

Поиск ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния Π² ячСйках Excel довольно часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰Π°ΡΡΡ Π·Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ макроса. Π Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Однако, Π² Ρ€Π°Π·Π½Ρ‹Ρ… ситуациях использованиС Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ способа ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ 2 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных способа.

Β 

Поиск ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ простой Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ способ. НапримСр, Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ «A» ячСйку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ «123» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:


Sheets("Π”Π°Π½Π½Ρ‹Π΅").Select
For y = 1 To Cells.SpecialCells(xlLastCell).Row
    If Cells(y, 1) = "123" Then
        Exit For
    End If
Next y
MsgBox "НашСл Π² строкС: " + CStr(y)

ΠœΠΈΠ½ΡƒΡΠ°ΠΌΠΈ этого Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ «ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ» способа ΡΠ²Π»ΡΡŽΡ‚ΡΡ: мСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΡΡ‚ΡŒ. А плюсом являСтся Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, Ρ‚.ΠΊ. Ρ‚Π°ΠΊΠΈΠΌ способом ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ слоТныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ поиска с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ вычислСниями ΠΈ Ρ‚.ΠΏ.

Поиск Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Find

Π“ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΈ ΠΏΡ€ΠΈ этом довольно Π³ΠΈΠ±ΠΊΠΈΠΉ. Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ случаС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ A ячСйку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ «123» достаточно Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:


Sheets("Π”Π°Π½Π½Ρ‹Π΅"). Select
Set fcell = Columns("A:A").Find("123")
If Not fcell Is Nothing Then
    MsgBox "НашСл Π² строкС: " + CStr(fcell.Row)
End If

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅ ΠΎΠΏΠΈΡˆΡƒ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ строчки Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

1-я строка: Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² ΠΊΠ½ΠΈΠ³Π΅ лист «Π”Π°Π½Π½Ρ‹Π΅»;

2-я строка: ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅ΠΌ поиск значСния «123» Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ «A», Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска Π±ΡƒΠ΄Π΅Ρ‚ Π² fcell;

3-я строка: Если ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ fcell Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Range-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС — Π±ΡƒΠ΄Π΅Ρ‚ пустой, Ρ‚.Π΅. Nothing.

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ синтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° поиска выглядит Ρ‚Π°ΠΊ:

Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

What — Π‘Ρ‚Ρ€ΠΎΠΊΠ° с тСкстом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ‰Π΅ΠΌ ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Excel

After — Π―Ρ‡Π΅ΠΉΠΊΠ°, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ‡Π°Ρ‚ΡŒ поиск. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Сдиничная ячСйка, Π° Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Поиск начинаСтся послС этой ячСйки, Π° Π½Π΅ с Π½Π΅Π΅. Поиск Π² этой ячСйкС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° вСсь Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ просмотрСн ΠΈ поиск начнСтся с Π½Π°Ρ‡Π°Π»Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ Π΄ΠΎ этой ячСйки Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

LookIn — Π’ΠΈΠΏ искомых Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: xlFormulas (Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹), xlValues (значСния), ΠΈΠ»ΠΈ xlNotes (примСчания).

LookAt — Одно ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: xlWhole (ΠΏΠΎΠ»Π½ΠΎΠ΅ совпадСниС) ΠΈΠ»ΠΈ xlPart (частичноС совпадСниС).

SearchOrder — Одно ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: xlByRows (ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ строкам) ΠΈΠ»ΠΈ xlByColumns (ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ столбцам)

SearchDirection — Одно ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: xlNext (поиск Π²ΠΏΠ΅Ρ€Π΅Π΄) ΠΈΠ»ΠΈ xlPrevious (поиск Π½Π°Π·Π°Π΄)

MatchCase — Одно ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: True (поиск Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊ рСгистру) ΠΈΠ»ΠΈ False (поиск Π±Π΅Π· ΡƒΡ‡Π΅Ρ‚Π° рСгистра)

MatchByte — ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ использовании ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ±Π°ΠΉΡ‚Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΎΠΊ: True (Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΉ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ±Π°ΠΉΡ‚Π½ΠΎΠΌΡƒ символу) ΠΈΠ»ΠΈ False (Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ±Π°ΠΉΡ‚Π½Ρ‹ΠΉ символ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚Π½ΠΎΠΌΡƒ символу)

SearchFormat — Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с FindFormat. Π‘Π½Π°Ρ‡Π°Π»Π° задаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FindFormat (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для поиска ячССк с курсивным ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊ: Application. FindFormat.Font.Italic = True), Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Find ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ SearchFormat = True. Если ΠΏΡ€ΠΈ поискС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ячССк, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ SearchFormat = False.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ поиск, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ FindNext (ΠΈΡΠΊΠ°Ρ‚ΡŒ «Π΄Π°Π»Π΅Π΅») ΠΈΠ»ΠΈ FindPrevious (ΠΈΡΠΊΠ°Ρ‚ΡŒ «Π½Π°Π·Π°Π΄»).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ поиска Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Find

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Найти Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ «A1:A50» всС ячСйки с тСкстом «asd» ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… всС Π½Π° «qwe»


With Worksheets(1).Range("A1:A50")
  Set c = .Find("asd", LookIn:=xlValues)
  Do While Not c Is Nothing
    c.Value = "qwe"
    Set c = .FindNext(c)
  Loop
End With

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Когда поиск достигнСт ΠΊΠΎΠ½Ρ†Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, функция ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ с Π½Π°Ρ‡Π°Π»Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ячСйки Π½Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ зациклится Π² бСсконСчном Ρ†ΠΈΠΊΠ»Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ (зацикливания), ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ поиск значСния с использованиСм FindNext, Π½Π΅ приводящий ΠΊ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΡŽ.


With Worksheets(1).Range("A1:A50")
  Set c = .Find("asd", lookin:=xlValues)
  If Not c Is Nothing Then
    firstResult = c.Address
    Do
      c.Font.Bold = True
      Set c = .FindNext(c)
      If c Is Nothing Then Exit Do
    Loop While c.Address <> firstResult
  End If
End With

Π’ Π½ΠΈΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ продолТСния поиска — с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Find с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ After. Когда Π½Π°ΠΉΠ΄Π΅Π½Π° очСрСдная ячСйка, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ поиск Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΡƒΠΆΠ΅ послС Π½Π΅Π΅. Однако, ΠΊΠ°ΠΊ ΠΈ с FindNext, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ достигнут ΠΊΠΎΠ½Π΅Ρ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Find ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ поиск с Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»Π°, поэтому, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ зацикливания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ совпадСниС с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ поиска.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ поиска с использованиСм Find с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ After.


With Worksheets(1).Range("A1:A50")
  Set c = .Find("asd", lookin:=xlValues)
  If Not c Is Nothing Then
    firstResult = c. Address
    Do
      c.Font.Bold = True
      Set c = .Find("asd", After:=c, lookin:=xlValues)
      If c Is Nothing Then Exit Do
    Loop While c.Address <> firstResult
  End If
End With

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SearchFormat для поиска ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ячСйки. Для указания Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ свойство FindFormat.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Найти всС ячСйки с ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ «ΠΊΡƒΡ€ΡΠΈΠ²» ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ (Π½Π΅ «ΠΊΡƒΡ€ΡΠΈΠ²»)


lLastRow = Cells.SpecialCells(xlLastCell).Row
lLastCol = Cells.SpecialCells(xlLastCell).Column
Application.FindFormat.Font.Italic = True
With Worksheets(1).Range(Cells(1, 1), Cells(lLastRow, lLastCol))
  Set c = .Find("", SearchFormat:=True)
  Do While Not c Is Nothing
    c.Font.Italic = False
    Set c = .Find("", After:=c, SearchFormat:=True)
  Loop
End With

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ FindNext для поиска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ячСйки, Ρ‚. ΠΊ. ΠΎΠ½ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠ± этом: https://support.microsoft.com/ru-ru/kb/282151)

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎΠΏΠΈΡˆΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π° 4. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ послСднюю строку (lLastRow) Π½Π° листС ΠΈ послСдний столбСц (lLastCol). 3-я строка Π·Π°Π΄Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ поиска, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ ячСйки с ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Italic. 4-я строка опрСдСляСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ячССк с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (с ячСйки A1 ΠΈ Π΄ΠΎ послСднСй строки ΠΈ послСднСго столбца). 5-я строка осущСствляСт поиск с использованиСм SearchFormat. 6-я строка — Ρ†ΠΈΠΊΠ» ΠΏΠΎΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ поиска Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ пустым. 7-я строка — мСняСм ΡˆΡ€ΠΈΡ„Ρ‚ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ (Π½Π΅ курсив), 8-я строка ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ поиск послС Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ячСйки.

Π₯ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π½Π΅ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ «Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ зацикливания», ΠΊΠ°ΠΊ Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… 2 ΠΈ 3, Ρ‚.ΠΊ. ΡˆΡ€ΠΈΡ„Ρ‚ мСняСтся ΠΈ послС «ΠΏΡ€ΠΎΡ…оТдСния» ΠΏΠΎ всСм ячСйкам, большС Π½Π΅ останСтся Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ячСйки с курсивом.

Бвойство FindFormat ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:


With Application. FindFormat.Font 
  .Name = "Arial" 
  .FontStyle = "Regular" 
  .Size = 10 
End With

Поиск послСднСй Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ячСйки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Find

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Find для поиска послСднСй ячСйки с Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π΅ 4 SpecialCells Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ послСднюю ячСйку Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° Π½Π΅ содСрТит Π½ΠΈΡ‡Π΅Π³ΠΎ, Π½ΠΎ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ»ΠΈ Π² Π½Π΅ΠΉ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 5: Найти послСднюю ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ ΠΈ столбСц, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ


Set c = Worksheets(1).UsedRange.Find("*", SearchDirection:=xlPrevious)
If Not c Is Nothing Then
  lLastRow = c.Row: lLastCol = c.Column 
Else
  lLastRow = 1: lLastCol = 1
End If
MsgBox "lLastRow=" & lLastRow & " lLastCol=" & lLastCol

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ UsedRange, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ SpecialCells Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ячСйки, Π² Ρ‚.Ρ‡. ΠΈ Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π½Π΅Π΅, Π° сСйчас пустыС. Ѐункция Find ΠΈΡ‰Π΅Ρ‚ ячСйку с Π»ΡŽΠ±Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ с ΠΊΠΎΠ½Ρ†Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Поиск ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ (маскС)

ΠŸΡ€ΠΈ поискС ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ тСкст ΠΏΠΎ маскС, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ это дСмонстрируСт.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6: Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ красным ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ ячСйки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСкст начинаСтся со слова ΠΈΠ· 4-Ρ… Π±ΡƒΠΊΠ², пСрвая ΠΈ послСдняя Π±ΡƒΠΊΠ²Ρ‹ «Ρ‚», ΠΏΡ€ΠΈ этом послС этого слова ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ любой тСкст.


With Worksheets(1).Cells
  Set c = .Find("Ρ‚??Ρ‚*", LookIn:=xlValues, LookAt:=xlWhole)
  If Not c Is Nothing Then
    firstResult = c.Address
    Do
      c.Font.Color = RGB(255, 0, 0)
      Set c = .FindNext(c)
      If c Is Nothing Then Exit Do
    Loop While c.Address <> firstResult
  End If
End With

Для поиска Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Find ΠΏΠΎ маскС (ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ символы:

* — для обозначСния любого количСства Π»ΡŽΠ±Ρ‹Ρ… символов;

? — для обозначСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ любого символа;

~ — для обозначСния символов *, ? ΠΈ ~. (Ρ‚.Π΅. Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² тСкстС Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ~?, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ (*), Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ~* ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π² тСкстС Ρ‚ΠΈΠ»ΡŒΠ΄Ρƒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ~~)

Поиск Π² скрытых строках ΠΈ столбцах

Для поиска Π² скрытых ячСйках Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ лишь ΠΎΠ΄ΠΈΠ½ нюанс: поиск Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°Ρ…, Π° Π½Π΅ Π² значСниях, Ρ‚. Π΅. Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ LookIn:=xlFormulas

Поиск Π΄Π°Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Find

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Π½Π° листС Excel ΠΈΠ»ΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Find, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько нюансов:

  • Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Date Π² VBA прСдставляСтся Π² Π²ΠΈΠ΄Π΅ #[мСсяц]/[дСнь]/[Π³ΠΎΠ΄]#, соотвСтствСнно, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 01 ΠΌΠ°Ρ€Ρ‚Π° 2018 Π³ΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ #3/1/2018#, Π° Π½Π΅ «01.03.2018»
  • Π’ зависимости ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ячССк, Π΄Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, поэтому, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ нСзависимо ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, поиск Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π² значСниях, Π° Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°Ρ…, Ρ‚.Π΅. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ LookIn:=xlFormulas

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² поиска Π΄Π°Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 7: Найти Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ Π½Π° листС нСзависимо ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° отобраТСния Π΄Π°Ρ‚Ρ‹.


d = Date
Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not c Is Nothing Then
  MsgBox "НашСл"
Else
  MsgBox "НС нашСл"
End If

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 8: Найти 1 ΠΌΠ°Ρ€Ρ‚Π° 2018 Π³.


d = #3/1/2018#
Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not c Is Nothing Then
  MsgBox "НашСл"
Else
  MsgBox "НС нашСл"
End If

Π˜ΡΠΊΠ°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‹ — слоТнСС. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ всС ячСйки, Π³Π΄Π΅ мСсяц «ΠΌΠ°Ρ€Ρ‚», нСдостаточно ΠΈΡΠΊΠ°Ρ‚ΡŒ «03» ΠΈΠ»ΠΈ «3». НС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Π°Ρ‚Π°ΠΌΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈ поиск ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. ЕдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я нашСл — это Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ мСсяц ΠΏΡ€ΠΎΠΏΠΈΡΡŒΡŽ для ячССк с Π΄Π°Ρ‚Π°ΠΌΠΈ ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ слово «ΠΌΠ°Ρ€Ρ‚» Π² xlValues.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1 ΠΌΠ°Ρ€Ρ‚Π° нСзависимо ΠΎΡ‚ Π³ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 9: Найти 1 ΠΌΠ°Ρ€Ρ‚Π° любого Π³ΠΎΠ΄Π°.


d = #3/1/1900#
Set c = Cells.Find(Format(d, "m\/d\/"), LookIn:=xlFormulas, LookAt:=xlPart)
If Not c Is Nothing Then
  MsgBox "НашСл"
Else
  MsgBox "НС нашСл"
End If

Β 

VBA Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° (ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ справочник)

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°
  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ: основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
    • Π‘ΠΊΠ²ΠΎΠ·Π½Ρ‹Π΅ ячСйки
    • Π‘ΠΊΠ²ΠΎΠ·Π½Ρ‹Π΅ листы Π Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΈ
    • Π¦ΠΈΠΊΠ» ΠΏΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌ
    • Π¦ΠΈΠΊΠ» Π‘ΠΊΠ²ΠΎΠ·Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹
    • Π¦ΠΈΠΊΠ» ΠΏΠΎ сводным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ
    • Π¦ΠΈΠΊΠ» ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ
    • Π¦ΠΈΠΊΠ» ΠΏΠΎ элСмСнтам массива
    • Π¦ΠΈΠΊΠ» ΠΏΠΎ числам
  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ построитСля Ρ†ΠΈΠΊΠ»ΠΎΠ²
  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ – Если
    • Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ – Если
  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
    • Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС ΠΊΠ½ΠΈΠ³ΠΈ
    • Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ всС листы
    • ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС листы
    • Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ всС листы
    • Π‘Π½ΡΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ со всСх листов
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π½Π° всСх листах
    • ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС сводныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
  • ИспользованиС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π² Access VBA

Π’ этом руководствС Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ†ΠΈΠΊΠ»Π° For Each Π² VBA. НаТмитС здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ†ΠΈΠΊΠ»Π°Ρ… Π² Ρ†Π΅Π»ΠΎΠΌ.

Цикл для каТдого

Π¦ΠΈΠΊΠ» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° позволяСт ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ:

  • ВсС ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
  • ВсС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅
  • ВсС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ
  • ВсС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π½Π° листС
  • ВсС элСмСнты массива
  • ΠΈ большС!

For Each: основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Π’ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ For Each для цикличСского ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π¦ΠΈΠΊΠ» ΠΏΠΎ ячСйкам

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ячСйку Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ A1:A10, устанавливая ячСйку справа ΠΎΡ‚ Π½Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΉ самой сСбС.

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachCell()
    Π—Π°Ρ‚Π΅ΠΌΠ½ΠΈΡ‚ΡŒ ячСйку ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² листах («Лист1Β»). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: A10Β»)
        Cell.Offset(0, 1).value = Cell.value
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ячСйка
    
End Sub 

ЦикличСский просмотр листов

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ цикличСски ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ лист Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, показывая ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ лист.

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachSheets()
    Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ws Π² листах
        ws.Visible = Π˜ΡΡ‚ΠΈΠ½Π°
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мс

End Sub 

Π¦ΠΈΠΊΠ» ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ всСм Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ, закрывая ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ….

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachWorkbooks()
    Dim wb ΠΊΠ°ΠΊ рабочая ΠΊΠ½ΠΈΠ³Π°
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘Π‘ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³Π°Ρ…
        wb.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π±
    
End Sub 

Π¦ΠΈΠΊΠ» ΠΏΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌ

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ всСм Ρ„ΠΈΠ³ΡƒΡ€Π°ΠΌ Π½Π° ЛистС 1, удаляя ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ….

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachShape()
    Π”ΠΈΠΌ Π¨ΠΏ Ас Π¨Π΅ΠΉΠΏ
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ листа Π² листах ("Лист1"). Π€ΠΎΡ€ΠΌΡ‹
        Π¨ΠΏ.ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π¨ΠΏ
    
End Sub 

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ VBA стало ΠΏΡ€ΠΎΡ‰Π΅

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ поиск ΠΊΠΎΠ΄Π° VBA Π² сСти. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎΠ± AutoMacro β€” конструкторС ΠΊΠΎΠ΄Π° VBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с нуля с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ знаниями Π² области программирования ΠΈ мноТСством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ!

Π£Π·Π½Π°Ρ‚ΡŒ большС

Π‘ΠΊΠ²ΠΎΠ·Π½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ Π½Π° листС 1, удаляя ΠΊΠ°ΠΆΠ΄ΡƒΡŽ.

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachCharts()
    Dim cht As ChartObject
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‡Ρ‚ Π² листах("Лист1").ChartObjects
        Ρ‡Ρ‚.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‡Ρ‚
    
End Sub 

Π¦ΠΈΠΊΠ» ΠΏΠΎ сводным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ всСм сводным Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Π½Π° листС Sheet1, очищая ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ…

 Sub ForEachPivotTables()
    Dim pvt ΠΊΠ°ΠΊ сводная Ρ‚Π°Π±Π»ΠΈΡ†Π°
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ pvt Π² листах («Лист1Β»). Π‘Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
        pvt.ClearTable
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ²Ρ‚
    
ΠšΠΎΠ½Π΅Ρ† суб 

ЦикличСский просмотр Ρ‚Π°Π±Π»ΠΈΡ†

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт цикличСский просмотр ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° ЛистС 1 с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachTables()
    Dim Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΠ°ΠΊ ListObject
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² листах ("Лист1").ListObjects
        Ρ‚Π°Π±Π».Π£Π΄Π°Π»ΠΈΡ‚ΡŒ
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°
    
End Sub 

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ VBA | Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° вас!

ЦикличСский просмотр элСмСнтов массива

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт цикличСский просмотр ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠ½Π΅ сообщСния,

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ForEachItemInArray()
    Dim arrValue ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Π—Π°Ρ‚Π΅ΠΌΠ½ΠΈΡ‚ΡŒ элСмСнт ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    arrValue = Array("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1", "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2", "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 3")
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² arrValue
        Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ MsgBox
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт
    
End Sub 

Π¦ΠΈΠΊΠ» ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌ

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС числа Π² массивС, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² msgbox,

 Sub ForEachNumberInNumbers()
    Dim arrNumber (ΠΎΡ‚ 1 Π΄ΠΎ 3) ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim num ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    
    Π½ΠΎΠΌΠ΅Ρ€(1) = 10
    число(2) = 20
    Π½ΠΎΠΌΠ΅Ρ€(3) = 30
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ числа In arrNumber
        Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ ящика
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€
    
ΠšΠΎΠ½Π΅Ρ† суб 

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ построитСля Ρ†ΠΈΠΊΠ»ΠΎΠ²

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»ΠΈ созданы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ построитСля Ρ†ΠΈΠΊΠ»ΠΎΠ² Π² нашСй надстройкС VBA: AutoMacro .

Β 

Loop Builder позволяСт ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для цикличСского ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². AutoMacro Ρ‚Π°ΠΊΠΆΠ΅ содСрТит мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π° , ΠΎΠ±ΡˆΠΈΡ€Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ΄ΠΎΠ² ΠΈ ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства кодирования .

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ β€” If

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ If Π² Ρ†ΠΈΠΊΠ»Π°Ρ… для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ соотвСтствия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ критСриям, выполняя дСйствия Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ Ρ‚Π΅ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ критСриям. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ β€” If

 Sub If_Loop()
Π—Π°Ρ‚Π΅ΠΌΠ½ΠΈΡ‚ΡŒ ячСйку ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
 
  Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (Β«A2: A6Β»)
    Если Π―Ρ‡Π΅ΠΉΠΊΠ°.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ > 0 Π’ΠΎΠ³Π΄Π°
      Cell.Offset(0, 1).Value = "ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅"
    Π˜Π½Π°Ρ‡Π΅Π•ΡΠ»ΠΈ Cell.Value < 0 Π’ΠΎΠ³Π΄Π°
      Cell.Offset(0, 1).Value = "ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅"
    Π•Ρ‰Π΅
      Π―Ρ‡Π΅ΠΉΠΊΠ°.Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅(0, 1).Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = "Ноль"
    ΠšΠΎΠ½Π΅Ρ†, Ссли
  Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ячСйка
 
End Sub 

Β 

Автомакрос | ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ надстройка VBA | НаТмитС для бСсплатной ΠΏΡ€ΠΎΠ±Π½ΠΎΠΉ вСрсии!

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ всС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ с сохранСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

 Sub CloseAllWorkbooks()
    
    Dim wb ΠΊΠ°ΠΊ рабочая ΠΊΠ½ΠΈΠ³Π°
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π‘Π‘ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³Π°Ρ…
        wb.Close SaveChanges: = True
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π±
    
End Sub 

Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ всС листы

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° скроСт всС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы.

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° HideAllSheets()
    Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ws Π² листах
        ws.Visible = ΠΊΡΠ»ΡˆΠΈΡ‚Ρ…ΠΈΠ΄Π΄Π΅Π½
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мс
    
ΠšΠΎΠ½Π΅Ρ† суб 

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС листы

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы.

 Sub UnhideAllSheets()
    Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ws Π² листах
        ws.Visible = ΠΊΡΠ»ΡˆΠΈΡ‚Π²ΠΈΡΠΈΠ±Π»Π΅
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мс
    
End Sub 

Автомакрос | ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ надстройка VBA | НаТмитС для бСсплатной ΠΏΡ€ΠΎΠ±Π½ΠΎΠΉ вСрсии!

Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ всС листы

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ всС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы.

 Sub ProtectAllSheets()
    Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ws Π² листах
        ws.Protect Password:=". .."
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мс
    
ΠšΠΎΠ½Π΅Ρ† суб 

Π‘Π½ΡΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ со всСх листов

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° снимСт Π·Π°Ρ‰ΠΈΡ‚Ρƒ со всСх Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… листов.

 Sub UnprotectAllSheets()
    Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ws Π² листах
        ws.Unprotect Password:="..."
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мс
    
End Sub 

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π½Π° всСх листах

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ всС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π² ΠΊΠ½ΠΈΠ³Π΅.

 Sub DeleteAllShapesOnAllWorksheets()
    Dim Sheet As Worksheet
    Π”ΠΈΠΌ Π¨ΠΏ Ас Π¨Π΅ΠΉΠΏ
    

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ листа Π² листах
        Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ шп Π² Sheet.Shapes
            Π¨ΠΏ.ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ
        Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π¨ΠΏ
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ лист
    
ΠšΠΎΠ½Π΅Ρ† суб 

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС сводныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ всС сводныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° листС.

 Sub RefreshAllPivotTables()
    Dim pvt ΠΊΠ°ΠΊ сводная Ρ‚Π°Π±Π»ΠΈΡ†Π°
    
    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ pvt Π² листах («Лист1Β»). Π‘Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
        pvt.RefreshTable
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ²Ρ‚
    
End Sub 

ИспользованиС For Each в Access VBA

Π¦ΠΈΠΊΠ» For Each Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Access VBA Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Excel VBA. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

 Sub RemoveAllTables()
  Dim tdf ΠΊΠ°ΠΊ TableDef
  Dim dbs ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…
  УстановитС dbs = CurrentDb
  Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ tdf Π² dbs.TableDefs
      DoCmd.DeleteObject tdf.Name
  ΠŸΠ΅Ρ‚Π»Ρ
  УстановитС dbs = НичСго
End Sub 

VBA Π‘ | Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ With Π² Excel VBA?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ схСму Excel VBA Π‘. With β€” это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² языках программирования. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ END. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСлаСтся ссылка, упоминаСтся послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова with, ΠΈ вСсь процСсс Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ End With. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ VBA With Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π΅Π· ΠΊΠΎΠ½Ρ†Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, поэтому ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ нСсколько Ρ€Π°Π·. ΠœΠ΅Ρ‚ΠΎΠ΄ доступа ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌ словС Ρ‚ΠΎΡ‡ΠΊΠ°. Когда ΠΌΡ‹ ставим ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² доступа ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ With Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½ΠΈΠΆΠ΅.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π² Excel VBA?

ΠœΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ With Π² Excel, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ VBA.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ этот шаблон VBA с Excel здСсь β€” VBA с шаблоном Excel

VBA с β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„– 1

Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала Π½Π°Ρ‡Π½Π΅ΠΌ с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ With для доступа ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π¨Π°Π³ 1: Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic (VBE). НаТмитС Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Insert > Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Module .

Π¨Π°Π³ 2:Β  ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π²ΠΎ вставлСнном ΠΌΠΎΠ΄ΡƒΠ»Π΅, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ваш макрос.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€1()

End Sub 

Π¨Π°Π³ 3:Β  ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с самого простого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€1()

Π‘ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ("A1")

ΠšΠΎΠ½Π΅Ρ† суб 

Π¨Π°Π³ 4: Когда ΠΌΡ‹ Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚ΠΎΡ‡ΠΊΡƒ (.), ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ряд Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, связанных с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€1()

Π‘ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ("A1")
.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 15

End Sub 

Π¨Π°Π³ 5:Β  ВсСгда Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ End.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€1()

Π‘ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ("A1")
.Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 15
ΠšΠΎΠ½Π΅Ρ† с

ΠšΠΎΠ½Π΅Ρ† суб 

Π¨Π°Π³ 6: Π’Π΅ΠΏΠ΅Ρ€ΡŒ запуститС этот ΠΊΠΎΠ΄, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ» ΠΈΠ»ΠΈ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5.

VBA With – ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β„–2

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ†Π²Π΅Ρ‚ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π£ мСня Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° листС 2 Π² ячСйках ΠΎΡ‚ A1 Π΄ΠΎ C3 ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ тСкста Π½Π° синий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ With Statement. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° листС 2 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π¨Π°Π³ 1:Β  Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€2()

End Sub 

Π¨Π°Π³ 2: ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ листа Π² этой ΠΊΠ½ΠΈΠ³Π΅, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ лист 2 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€2()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

End Sub 

Π¨Π°Π³ 3: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Range, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ для Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΈ установитС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ наши Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° листС 2.

Код:

 Sub Example2()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: C3Β»)

End Sub 

Π¨Π°Π³ 4:Β  ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ свойству Font ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Rng с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции with со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€2()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: C3Β»)
Π‘ Rng.Font

End Sub 

Π¨Π°Π³ 5: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ (.), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ тСкста Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ячССк.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€2()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: C3Β»)
Π‘ Rng.Font
.Π¦Π²Π΅Ρ‚ = vbBlue

ΠšΠΎΠ½Π΅Ρ† суб 

Π¨Π°Π³ 6:Β  Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ END WITH ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€2()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист2").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: C3Β»)
Π‘ Rng.Font
.Π¦Π²Π΅Ρ‚ = vbBlue
ΠšΠΎΠ½Π΅Ρ† с

End Sub 

Π¨Π°Π³ 7:Β  Когда ΠΌΡ‹ выполняСм ΠΊΠΎΠ΄, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° листС 2.

VBA With β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„– 3

Π’ этом ΠΎΡ‡Π΅Π½ΡŒ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° With. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ тСкст Π² ячСйках ΠΎΡ‚ B2 Π΄ΠΎ D5, ΠΈ ΠΎΠ½ΠΈ Π½Π°Π±Ρ€Π°Π½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ Π½Π° ΠΆΠΈΡ€Π½Ρ‹ΠΉ ΠΈ курсивный, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ With. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° листС 3 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π¨Π°Π³ 1: Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

End Sub 

Π¨Π°Π³ 2: ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ листа Π² этой ΠΊΠ½ΠΈΠ³Π΅, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ лист 3 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист3").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

End Sub 

Π¨Π°Π³ 3:Β  Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Range, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΈ установитС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит наши Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° листС 3.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист3"). ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng1 = Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("B2: D5")

End Sub 

Π¨Π°Π³ 4:Β  ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ свойству Font ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Rng с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° with.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист3").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng1 = Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("B2: D5")
Π‘ Rng1.Font

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ 

Π¨Π°Π³ 5: Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ (.) Π² ΠΊΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ Π½Π° ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ ΠΈ курсивный.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист3").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng1 = Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("B2: D5")
Π‘ Rng1.Font
.Π–ΠΈΡ€Π½Ρ‹ΠΉ = Π˜ΡΡ‚ΠΈΠ½Π°
.ΠšΡƒΡ€ΡΠΈΠ² = Π˜ΡΡ‚ΠΈΠ½Π°

End Sub 

Π¨Π°Π³ 6:Β  Π”Π°Π²Π°ΠΉΡ‚Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ End, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€3()

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы("Лист3").ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Dim Rng As Range
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng1 = Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("B2: D5")
Π‘ Rng1. Font
.Π–ΠΈΡ€Π½Ρ‹ΠΉ = Π˜ΡΡ‚ΠΈΠ½Π°
.ΠšΡƒΡ€ΡΠΈΠ² = Π˜ΡΡ‚ΠΈΠ½Π°
ΠšΠΎΠ½Π΅Ρ† с

End Sub 

Π¨Π°Π³ 7: Когда ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° листС 3 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Как ΠΈ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, насколько Π²Π°ΠΆΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with Π² нашСм повсСднСвном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ удаляСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ шаги, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пытаСмся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Loop Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… With, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA с (Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€)?

ΠœΡ‹ рассмотрСли основныС способы использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° With Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ With для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠœΡ‹ создадим ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ имя Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ возраст, Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ имя Π² спискС ΠΈ вставит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возраста рядом с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π”Π°Π½Π½Ρ‹Π΅ Π½Π° листС 4 выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ разбСрСмся с Π½ΠΈΠΌ шаг Π·Π° шагом.

Код:

 ΠŸΠΎΠ΄ΠΏΡ€ΠΈΠΌΠ΅Ρ€4()

Dim ws As Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист
Dim FoundCell ΠΊΠ°ΠΊ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
Dim Name ΠΊΠ°ΠΊ String, FindThis ΠΊΠ°ΠΊ String, Age ΠΊΠ°ΠΊ Integer, k ΠΊΠ°ΠΊ Integer
УстановитС ws = Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы («Лист4Β»)
Имя = InputBox("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя")
Возраст = InputBox("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ возраст")
НайтиЭто = Имя
УстановитС FoundCell = ws.Range("A:A").Find(What:=FindThis)
k = FoundCell.Row
Π‘ Π’Π‘
Π―Ρ‡Π΅ΠΉΠΊΠΈ (k, 2). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Возраст
ΠšΠΎΠ½Π΅Ρ† с

ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π½ΠΈΠΊ 

Когда ΠΌΡ‹ выполняСм ΠΊΠΎΠ΄, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠ½Π°:

Когда ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ OK для возраста, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½Π° листС 4 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ΄ шаг Π·Π° шагом:

  1. Когда ΠΌΡ‹ просим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти имя, ΠΊΠΎΠ΄ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π² столбцС A.
  2. Когда Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдоставлСнноС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, строка для значСния сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.