Π Π°Π·Π½ΠΎΠ΅

Sheets excel vba: ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листов Excel Π² Visual Basic

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

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листов Excel Π² Visual Basic



  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2Β ΠΌΠΈΠ½

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

Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Visual Basic ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листов Microsoft Excel.You can use most Microsoft Excel worksheet functions in your Visual Basic statements. Бписок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Бписок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ листов, доступных для Visual Basic.For a list of the worksheet functions you can use, see List of worksheet functions available to Visual Basic.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ листов Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Visual Basic.Some worksheet functions are not useful in Visual Basic. НапримСр, Π½Π΅ трСбуСтся функция Concatenate, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Visual Basic ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ & для объСдинСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… тСкстовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.For example, the Concatenate function is not needed because in Visual Basic you can use the & operator to join multiple text values.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ листа ΠΈΠ· Visual BasicCalling a worksheet function from Visual Basic

Π’ Visual Basic Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ листов Excel доступны Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ WorksheetFunction.In Visual Basic, the Excel worksheet functions are available through the WorksheetFunction object.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Sub ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция листа Min для опрСдСлСния наимСньшСго значСния Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ячССк.The following Sub procedure uses the Min worksheet function to determine the smallest value in a range of cells. Π‘Π½Π°Ρ‡Π°Π»Π° пСрСмСнная myRange ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Range, Π° Π·Π°Ρ‚Π΅ΠΌ Π΅ΠΉ присваиваСтся Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ A1:C10 Π½Π° листС Sheet1. First, the variable myRange is declared as a Range object, and then it is set to range A1:C10 on Sheet1. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, answer, назначаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Min ΠΊ myRange.Another variable, answer, is assigned the result of applying the Min function to myRange. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ answer отобраТаСтся Π² ΠΎΠΊΠ½Π΅ сообщСния.Finally, the value of answer is displayed in a message box.

Sub UseFunction() 
 Dim myRange As Range 
 Set myRange = Worksheets("Sheet1").Range("A1:C10") 
 answer = Application.WorksheetFunction.Min(myRange) 
 MsgBox answer 
End Sub

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ листа, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ трСбуСтся ссылка Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Range.If you use a worksheet function that requires a range reference as an argument, you must specify a Range object. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ листа Match (ΠŸΠžΠ˜Π‘ΠšΠŸΠžΠ—) для поиска Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк.For example, you can use the Match worksheet function to search a range of cells. Π’ ячСйкС листа ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ ввСсти Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ =ΠŸΠžΠ˜Π‘ΠšΠŸΠžΠ— (9;A1:A10;0).In a worksheet cell, you would enter a formula such as =MATCH(9,A1:A10,0). Однако Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Visual Basic Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Range, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.However, in a Visual Basic procedure, you would specify a Range object to get the same result.

Sub FindFirst() 
 myVar = Application.WorksheetFunction _ 
 .Match(9, Worksheets(1).Range("A1:A10"), 0) 
 MsgBox myVar 
End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Visual Basic Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ WorksheetFunction.Visual Basic functions do not use the WorksheetFunction qualifier. Ѐункция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ функция Microsoft Excel, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. A function may have the same name as a Microsoft Excel function and yet work differently. НапримСр, Application.WorksheetFunction.Log ΠΈ Log Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ значСния.For example, Application.WorksheetFunction.Log and Log will return different values.

Вставка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ листа Π² ячСйкуInserting a worksheet function into a cell

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ листа Π² ячСйку, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π² качСствС значСния свойства Formula ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Range.To insert a worksheet function into a cell, you specify the function as the value of the Formula property of the corresponding Range object. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция листа RAND (ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π°Ρ случайноС число), назначаСтся свойству Formula Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° A1:B3 Π½Π° листС Sheet1 Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅.In the following example, the RAND worksheet function (which generates a random number) is assigned to the Formula property of range A1:B3 on Sheet1 in the active workbook.

Sub InsertFormula() 
 Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()" 
End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Example

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция листа Pmt, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΠ»Π°Ρ‚Π΅ΠΆ ΠΏΠΎ ΠΈΠΏΠΎΡ‚Π΅Ρ‡Π½ΠΎΠΉ ссудС.This example uses the worksheet function Pmt to calculate a home mortgage loan payment. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ InputBox вмСсто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ InputBox, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠ³ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ².Notice that this example uses the InputBox method instead of the InputBox function so that the method can perform type checking. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Static приводят ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Visual Basic сохраняСт значСния Ρ‚Ρ€Π΅Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…; ΠΎΠ½ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.The Static statements cause Visual Basic to retain the values of the three variables; these are displayed as default values the next time you run the program.

Static loanAmt 
Static loanInt 
Static loanTerm 
loanAmt = Application.InputBox _ 
 (Prompt:="Loan amount (100,000 for example)", _ 
 Default:=loanAmt, Type:=1) 
loanInt = Application.InputBox _ 
 (Prompt:="Annual interest rate (8.75 for example)", _ 
 Default:=loanInt, Type:=1) 
loanTerm = Application.InputBox _ 
 (Prompt:="Term in years (30 for example)", _ 
 Default:=loanTerm, Type:=1) 
payment = Application.WorksheetFunction _ 
 .Pmt(loanInt / 1200, loanTerm * 12, loanAmt) 
MsgBox "Monthly payment is " & Format(payment, "Currency")

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅See also

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ обратная связьSupport and feedback

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Office VBA ΠΈΠ»ΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ?Have questions or feedback about Office VBA or this documentation? Руководство ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам получСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Office VBA ΠΈ обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.



Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ActiveWorkbook Π² Excel подробная ΡΡ‚Π°Ρ‚ΡŒΡ

Автор Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ Π―ΠΊΡƒΡˆΠ΅Π² На Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ 19 ΠΌΠΈΠ½. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΎΠ² 3.8k.

John Naisbitt

ΠœΡ‹ Ρ‚ΠΎΠ½Π΅ΠΌ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ ΠΆΠ°ΠΆΠ΄Π΅ΠΌ Π·Π½Π°Π½ΠΈΠΉ

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ содСрТит ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ использованию Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ VBA.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA для открытия Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, Ρ‚ΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΡƒΒ»

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA для создания Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈΒ».

Для всСх
Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ VBA Workbook, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ руководством Π½ΠΈΠΆΠ΅.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ ΠΊΠ½ΠΈΠ³Π΅ VBA

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ
основным Π·Π°Π΄Π°Ρ‡Π°ΠΌ ΠΊΠ½ΠΈΠ³ΠΈ VBA.

Π—Π°Π΄Π°Ρ‡Π°Π˜ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
Доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ с
использованиСм имСни
Workbooks(Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€. xlsxΒ»)
Доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ
ΠΊΠ½ΠΈΠ³Π΅ (ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ ΠΏΠ΅Ρ€Π²ΠΎΠΉ)
Workbooks(1)
Доступ ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ
ΠΊΠ½ΠΈΠ³Π΅ (ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ послСднСй)
Workbooks(Workbooks.Count)
Доступ ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ActiveWorkbook
Доступ ΠΊ ΠΊΠ½ΠΈΠ³Π΅, содСрТащСй
ΠΊΠΎΠ΄ VBA
ThisWorkbook
ΠžΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΠΈDimΒ wkΒ AsΒ Workbook
ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΠΈ SetΒ wk = Workbooks(Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsxΒ»)
SetΒ wk = ThisWorkbook
SetΒ wk = Workbooks(1)
ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ wk.Activate
Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π±Π΅Π· сохранСнияwk.Close SaveChanges:=False
Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ сохранитСwk.Close SaveChanges:=True
Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΡƒSetΒ wk = Workbooks. Add
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΡƒSetΒ wk =Workbooks.Open (Β«C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsxΒ»)
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для
чтСния
SetΒ wk = Workbooks.Open (Β«C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsxΒ», ReadOnly:=True)
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ сущСствованиС ΠΊΠ½ΠΈΠ³ΠΈIfΒ Dir(Β«C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsxΒ») = «» Then
MsgBoxΒ Β«File does not exist.Β»
EndIf
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΈΠ³Π°Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ
ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΈΠ³Π°Β»
ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅
Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ
ForΒ EachΒ wkΒ InΒ Application.Workbooks
Β Β Β Β Debug.PrintΒ wk.FullName
NextΒ wk
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Β«Π€Π°ΠΉΠ»Β»
Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» «ИспользованиС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Β«Π€Π°ΠΉΠ»Β»
Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒwk.Save
Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ копию ΠΊΠ½ΠΈΠ³ΠΈwk. SaveCopyAsΒ Β«C:\Копия.xlsmΒ»
Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ, Ссли ΠΎΠ½Π°
Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°
FileCopy «C:\file1.xlsx»,»C:\Копия.xlsx»
Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Рабочая ΠΊΠ½ΠΈΠ³Π°wk.SaveAs «РСзСрвная копия.xlsxΒ»

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ VBA

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ любой ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ Workbooks (Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsmΒ»). ΠŸΡ€ΠΎΡΡ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsm ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ячСйку Π½Π° листС. Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк.

Sub ZapisVYacheikuA1()

'ЗаписываСт 100 Π² ячСйку A1 листа "Лист1" Π² МойVBA.xlsm
Workbooks("МойVBA.xlsm").Worksheets("Лист1").Range("A1") = 100

End Sub

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΠ½ довольно прост.

ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎ дСсятичной запятой прСдставляСт собой
Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, вторая Ρ‡Π°ΡΡ‚ΡŒ прСдставляСт собой Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡ β€”
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. Π’ΠΎΡ‚ Π΅Ρ‰Π΅ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² записи Π² ячСйку

Sub ZapisiVYacheiku()

' ЗаписываСт 100 Π² ячСйку A1 листа "Лист1" Π² МойVBA.xlsm
Workbooks("МойVBA.xlsm").Worksheets("Лист1").Range("A1") = 100

' ЗаписываСт «Иван» Π² ячСйку B1 листа «Лист1Β» Π² МойVBA.xlsm
Workbooks("МойVBA.xlsm").Worksheets("Лист1").Range("B1") = "Иван"

' ЗаписываСт 100 Π² ячСйку A1 Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Β«Π‘Ρ‡Π΅Ρ‚Π°Β» Π² МойVBA.xlsm
Workbooks("МойVBA.xlsm").Worksheets("Π‘Ρ‡Π΅Ρ‚Π°").Range("A1") = 100

' ЗаписываСт Π΄Π°Ρ‚Ρƒ Π² ячСйку D3 Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа "Лист2" Π² Книга.xlsx
Workbooks("Книга.xlsx").Worksheets("Лист2").Range("D3") = "1\1\2019"

End Sub

Π­Ρ‚ΠΎ простой шаблон. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π»ΡŽΠ±ΡƒΡŽ ячСйку любого листа ΠΈΠ· любой ΠΊΠ½ΠΈΠ³ΠΈ. Π­Ρ‚ΠΎ просто вопрос измСнСния названия ΠΊΠ½ΠΈΠ³ΠΈ, ΠΈΠΌΠ΅Π½ΠΈ листа ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π² соотвСтствии с вашими потрСбностями.

ВзглянитС Π½Π° Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ

Workbooks("ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsx")

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Workbooks относится ΠΊ совокупности всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ доступ ΠΊ этой ΠΊΠ½ΠΈΠ³Π΅. Когда Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для выполнСния Π·Π°Π΄Π°Ρ‡ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ.

 УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΊΠ½ΠΈΠ³

Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Workbooks для доступа ΠΊ ΠΊΠ½ΠΈΠ³Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС ΠΎΠ± ошибкС:

Run-time Error 9: Subscript out of Range.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ VBA Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹
ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

  1. Рабочая ΠΊΠ½ΠΈΠ³Π° Π² настоящСС врСмя Π·Π°ΠΊΡ€Ρ‹Ρ‚Π°.
  2. Π’Ρ‹ написали имя Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
  3. Π’Ρ‹ создали Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «Книга1Β») ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ доступ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Workbooks («Книга1.xlsxΒ»). Π­Ρ‚ΠΎ имя Π½Π΅ Книга1.xlsx, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·.
  4. (Волько для Excel 2007/2010) Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Π²Π° экзСмпляра Excel, Ρ‚ΠΎ Workbooks () относится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС Excel.
  5. Π’Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ число Π² качСствС индСкса, ΠΈ ΠΎΠ½ΠΎ большС, Ρ‡Π΅ΠΌ количСство ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ½ΠΈΠ³, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π’Ρ‹ использовали
    Workbooks (3), ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹.

Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ любой ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Поиск всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³ Π² Β«Immediate Window Β» (Ctrl + G).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ VBA

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с
ΠΊΠ½ΠΈΠ³ΠΎΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€, создайтС Π΄Π²Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ВСст1.xlsx ΠΈ ВСст2.xlsx.

Sub SvoistvaRabocheiKnigi()

    ' ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ количСство ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³
    Debug.Print Workbooks.Count

    ' ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ
    Debug.Print Workbooks("ВСст1.xlsx").FullName

    ' ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΊΠ½ΠΈΠ³ΠΈ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ сообщСния.
    MsgBox Workbooks("ВСст1.xlsx").FullName

    ' ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ количСство листов Π² ВСст2.xlsx
    Debug.Print Workbooks("ВСст2.xlsx").Worksheets.Count

    ' ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ имя Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ листа ВСст2.xlsx
    Debug. Print Workbooks("ВСст2.xlsx").ActiveSheet.Name

    ' Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ВСст1.xlsx
    Workbooks("TСст1.xlsx").Close

    ' Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ ВСст2.xlsx ΠΈ сохраняСт измСнСния
    Workbooks("TСст2.xlsx").Close SaveChanges:=True

End Sub

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊΠΎΠ΄Π° я часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Debug.Print. Π­Ρ‚Π° функция ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ значСния Π² Immediate Window. Для просмотра этого ΠΎΠΊΠ½Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ View-> Immediate Window ΠΈΠ· мСню (сочСтаниС клавиш Ctrl + G)

Доступ ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅ VBA ΠΏΠΎ индСксу

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксный Π½ΠΎΠΌΠ΅Ρ€ с ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ().
ИндСкс относится ΠΊ порядку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΈΠ»ΠΈ создана.

Workbooks (1) относится ΠΊ ΠΊΠ½ΠΈΠ³Π΅, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ. Workbooks (2) относится ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

' ΠŸΠ΅Ρ€Π²Π°Ρ рабочая ΠΊΠ½ΠΈΠ³Π°, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°
Debug.Print Workbooks(1).Name

' Π’Ρ€Π΅Ρ‚ΡŒΡ рабочая Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΡŒ, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°
Debug. Print Workbooks(3).Name

' ПослСдняя рабочая ΠΊΠ½ΠΈΠ³Π°, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°
Debug.Print Workbooks(Workbooks.Count).Name

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали Workbooks.Count. Π­Ρ‚ΠΎ количСство Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящСС врСмя находятся Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³. Π’ΠΎ Π΅ΡΡ‚ΡŒ количСство Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, использованиС Π΅Π³ΠΎ Π² качСствС индСкса Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ послСднюю ΠΊΠ½ΠΈΠ³Ρƒ, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°

ИспользованиС индСкса Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ порядок. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Π°ΠΌ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΅Π³ΠΎ использования. ВмСсто этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ имя Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ вмСстС с Workbooks ().

Поиск всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³

Иногда Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, всС элСмСнты Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Workbooks ().

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ†ΠΈΠΊΠ» For Each.

Sub PechatImeniFailaEach()

    ' РаспСчатываСт ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³
    Dim wrk As Workbook
    For Each wrk In Workbooks
        Debug. Print wrk.FullName
    Next wrk

End Sub

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартный Ρ†ΠΈΠΊΠ» For для доступа ΠΊΠΎ всСм ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ ΠΊΠ½ΠΈΠ³Π°ΠΌ.

Sub PechatImeniFailaFor()

    ' РаспСчатываСт ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³
    Dim i As Long
    For i = 1 To Workbooks.Count
        Debug.Print Workbooks(i).FullName
    Next i

End Sub

Для доступа ΠΊ ΠΊΠ½ΠΈΠ³Π°ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ любой ΠΈΠ· этих Ρ†ΠΈΠΊΠ»ΠΎΠ².
Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» For ΠΏΠΎΠ»Π΅Π·Π΅Π½, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ порядок ΠΈΠ»ΠΈ
Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ счСтчик.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Оба ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π² порядкС с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π΄ΠΎ послСднСго ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (с послСднСго Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это

Sub PechatImeniFailaForKon()

    ' РаспСчатываСт ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³
    ' Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.
    Dim i As Long
    For i = Workbooks.Count To 1 Step -1
        Debug.Print Workbooks(i).FullName
    Next i

End Sub

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ запуском макроса Π½Π΅ позволяСт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ. Π—Π°Π΄Π°Π½ΠΈΠ΅ Β«ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΡƒΒ» Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ VBA.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ VBA ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ «Книга1.xlsmΒ» Π² ΠΏΠ°ΠΏΠΊΠ΅ Β«C: \ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹Β»

Sub OtkritKnigu()

    ' ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ распСчатайтС количСство листов Π² Π½Π΅ΠΉ
    Workbooks.Open ("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm")

    Debug.Print Workbooks("Книга1.xlsm").Worksheets.Count

    ' Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ Π±Π΅Π· сохранСния
    Workbooks("Книга1.xlsm").Close saveChanges:=False

End Sub

РСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ сущСствуСт ΠΊΠ½ΠΈΠ³Π°,
ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ваши ошибки. Ѐункция Dir позволяСт
Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Sub OtkritKniguDir()

    If Dir("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm") = "" Then
        ' Π€Π°ΠΉΠ» Π½Π΅ сущСствуСт - сообщСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ
        MsgBox "Could not open the workbook. Please check it exists"
    Else
        ' ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ с Π½Π΅ΠΉ
        Workbooks. Open("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm").Open
    End If

End Sub

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΈΠ³Π°

Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΎΠ½Π° ΡƒΠΆΠ΅. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, рСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π»ΠΈ ΠΎΠ½ΠΈ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½ΠΈΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ,
ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΈΠ³Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Если Π½Π΅Ρ‚, Ρ‚ΠΎ откроСтся рабочая ΠΊΠ½ΠΈΠ³Π°. Π’ любом
случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

Function GetWorkbook(ByVal sFullFilename As String) As Workbook
    
    Dim sFilename As String
    sFilename = Dir(sFullFilename)
    
    On Error Resume Next
    Dim wk As Workbook
    Set wk = Workbooks(sFilename)
    
    If wk Is Nothing Then
        Set wk = Workbooks.Open(sFullFilename)
    End If
    
    On Error Goto 0
    Set GetWorkbook = wk
    
End Function

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π°ΠΊ:

Sub PrimerOtkritiyaKnigi()

    Dim sFilename As String
    sFilename = "C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга2. xlsx"

    Dim wk As Workbook
    Set wk = GetWorkbook(sFilename)
    
End Sub

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ситуаций. Однако, Ссли рабочая ΠΊΠ½ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

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

' Ѐункция для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ссли ΠΊΠ½ΠΈΠ³Π° ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°
Function IsWorkBookOpen(strBookName As String) As Boolean
    
    Dim oBk As Workbook
    
    On Error Resume Next
    Set oBk = Workbooks(strBookName)
    On Error GoTo 0
    
    If Not oBk Is Nothing Then
        IsWorkBookOpen = True
    End If
    
End Function

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅. Π’ этом
случаС, Ссли рабочая ΠΊΠ½ΠΈΠ³Π° ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°, Π²Ρ‹ сообщаСтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π°
Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° для продолТСния макроса.

Sub PrimerIsp()

    Dim sFilename As String
    sFilename = "C:\temp\writedata.xlsx"

    If IsWorkBookOpen(Dir(sFilename)) = True Then
        MsgBox "File is already open. Please close file and run macro again."
        Exit Sub
    End If
    
    ' ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΠ½ΠΈΠ³Ρƒ здСсь
    
End Sub

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Π»ΠΈ ΠΊΠ½ΠΈΠ³Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ экзСмплярС Excel, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ReadOnly ΠΊΠ½ΠΈΠ³ΠΈ. Π‘ΡƒΠ΄Π΅Ρ‚ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли ΠΎΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ экзСмплярС.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π² Excel VBA ΠΎΡ‡Π΅Π½ΡŒ просто. Π’Ρ‹ просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Close Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

wk.Close

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ Π² VBA, Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ
сообщСния ΠΈΠ· Excel, ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ».

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, ΠΈ Ρ‚ΠΎΠ³Π΄Π°
сообщСния Excel Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ.

' НС ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ измСнСния
wk.Close SaveChanges:= False

' Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния
wk.Close SaveChanges:= True

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² ΠΊΠ½ΠΈΠ³Π΅,
которая Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ

ΠœΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ Π΅Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ этапС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Save.

wk.Save

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ SaveAs

wk.SaveAs "C:\РСзСрвная копия\Π‘Ρ‡Π΅Ρ‚Π°.xlsx"

ΠœΠ΅Ρ‚ΠΎΠ΄ WorkAs SaveAs поставляСтся с Π΄Π²Π΅Π½Π°Π΄Ρ†Π°Ρ‚ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ здСсь.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA для сохранСния ΠΊΠ½ΠΈΠ³ΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΏΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SaveCopyAs.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ

Если рабочая ΠΊΠ½ΠΈΠ³Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅ для создания ΠΊΠΎΠΏΠΈΠΈ, Ρ‚. Π΅. SaveAs ΠΈ SaveCopyAs.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ, Π½Π΅ открывая Π΅Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ FileCopy, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Sub KopirovatKnigu()
    FileCopy "C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.xlsm", "C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΏΠΈΠΈ.xlsm"
End Sub

ИспользованиС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Β«Π€Π°ΠΉΠ»Β» для открытия Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Windows File Dialog.

FileDialog настраиваСтся, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ:

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ».
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ.
  3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ».
  4. Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΒ» Ρ„Π°ΠΉΠ».

Если Π²Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» Ρ„Π°ΠΉΠ», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetOpenFilename.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ½ΠΈΠ³Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Ρ„Π°ΠΉΠ»ΠΎΠ².
Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, Ссли Ρ„Π°ΠΉΠ» Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
отмСняСт, ΠΎΠ½ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ сообщСниС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ строку.

Public Function UserSelectWorkbook() As String

    On Error Goto ErrorHandler

    Dim sWorkbookName As String

    Dim FD As FileDialog
    Set FD = Application.FileDialog(msoFileDialogFilePicker)

    ' ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ„Π°ΠΉΠ»Π°
    With FD
        ' Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄ΠΈΠ°Π»ΠΎΠ³Π°
        .Title = "Please Select File"

        ' Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€
        .Filters.Add "Excel Files", "*.xls;*.xlsx;*.xlsm"

        ' Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
        .AllowMultiSelect = False

        ' Π”ΠΈΠ°Π»ΠΎΠ³ дисплСя
        .Show

        If .SelectedItems.Count > 0 Then
            UserSelectWorkbook = .SelectedItems(1)
        Else
            MsgBox "Selecting a file has been cancelled. "
            UserSelectWorkbook = ""
        End If
    End With

    ' Π£Π±ΠΈΡ€Π°Ρ‚ΡŒ
    Set FD = Nothing
Done:
    Exit Function
ErrorHandler:
    MsgBox "Error: " + Err. Description
End Function

Когда Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, отмСняСт Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ UserSelectWorkbook ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ случай ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Public Sub TestViborPolz()

    Dim userBook As Workbook, sFilename As String

    ' Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ UserSelectworkbook
    sFilename = UserSelectWorkbook()

    ' Если имя Ρ„Π°ΠΉΠ»Π° возвращаСтся пустым, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΠ»
    If sFilename <> "" Then
        ' ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ сдСлайтС Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ с Π½Π΅ΠΉ
        Set userBook = Workbooks.Open(sFilename)
    End If

End Sub

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Title, Filters ΠΈ AllowMultiSelect Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UserSelectWorkbook.

ИспользованиС ThisWorkbook

БущСствуСт Π±ΠΎΠ»Π΅Π΅ простой способ доступа ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, Ρ‡Π΅ΠΌ использованиС Workbooks() . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ThisWorkbook. Π­Ρ‚ΠΎ относится ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊ ΠΊΠ½ΠΈΠ³Π΅, содСрТащСй ΠΊΠΎΠ΄ VBA.

Если наш ΠΊΠΎΠ΄ находится Π² ΠΊΠ½ΠΈΠ³Π΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ МойVBA.xlsm, Ρ‚ΠΎ ThisWorkbook ΠΈ Workbooks («МойVBA.xlsmΒ») ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΊΠ½ΠΈΠ³Ρƒ.

ИспользованиС ThisWorkbook Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ‡Π΅ΠΌ использованиС Workbooks (). Π‘ ThisWorkbook Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π΄Π²Π° прСимущСства:

  1. ИзмСнСниС ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π΅ повлияСт Π½Π° ΠΊΠΎΠ΄
  2. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ Π½Π΅
    Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния ΠΊΠΎΠ΄Π°

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ малСньким прСимущСством. Π Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Π°, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ всС врСмя. ИспользованиС ThisWorkbook ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π΅ строки ΠΊΠΎΠ΄Π°. Один с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ThisWorkbook, Π΄Ρ€ΡƒΠ³ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Workbooks (). Π’ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Workbooks, большС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли имя МойVBA. xlsm измСнится.

Sub IzmenenieImeni()

    ' ОбС строки Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.
    Debug.Print ThisWorkbook.FullName
    Debug.Print Workbooks("МойVBA.xlsm").FullName

End Sub

ИспользованиС ActiveWorkbook

ActiveWorkbook относится ΠΊ ΠΊΠ½ΠΈΠ³Π΅, которая Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Π°. Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ послСдний Ρ€Π°Π· Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ».

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ
любая рабочая ΠΊΠ½ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ простым Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚,
Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π² Ρ‚Ρƒ ΠΊΠ½ΠΈΠ³Ρƒ.

ИспользованиС ActiveWorkbook Ρ‚Π°ΠΊΠΆΠ΅ затрудняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Из ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, какая ΠΊΠ½ΠΈΠ³Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ.

НадСюсь, я Π΄Π°Π» ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования ActiveWorkbook, Ссли Π² этом Π½Π΅Ρ‚ нСобходимости. Если Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ остороТны.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ доступа ΠΊ ΠΊΠ½ΠΈΠ³Π΅

ΠœΡ‹ рассмотрСли всС способы доступа ΠΊ ΠΊΠ½ΠΈΠ³Π΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этих способов.

Sub PrimerDostupaKKnige()

    ' Π­Ρ‚ΠΎ рабочая ΠΊΠ½ΠΈΠ³Π°, которая ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΈ называСтся МойVBA.xlsm.
    Debug.Print Workbooks("МойVBA.xlsm").FullName

    ' Рабочая ΠΊΠ½ΠΈΠ³Π°, содСрТащая этот ΠΊΠΎΠ΄
    Debug.Print ThisWorkbook.FullName

    ' ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°Ρ рабочая ΠΊΠ½ΠΈΠ³Π°, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ
    Debug.Print Workbooks(1).FullName

    ' ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Π°Ρ рабочая ΠΊΠ½ΠΈΠ³Π°, которая Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° послСднСй
    Debug.Print Workbooks(Workbooks.Count).FullName

    ' Рабочая ΠΊΠ½ΠΈΠ³Π°, которая Π² настоящСС врСмя Π°ΠΊΡ‚ΠΈΠ²Π½Π°
    Debug.Print ActiveWorkbook.FullName

    ' Рабочая ΠΊΠ½ΠΈΠ³Π° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° - Π±ΡƒΠ΄Π΅Ρ‚ использована активная
    Debug.Print Worksheets("Лист1").Name

    ' Закрытая рабочая ΠΊΠ½ΠΈΠ³Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Книга1.xlsm Π² ΠΏΠ°ΠΏΠΊΠ΅ 
      'C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹
    Workbooks.Open ("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm")
    Debug.Print Workbooks("Книга1.xlsm").FullName
    Workbooks("Книга1.xlsm").Close

End Sub

ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ VBA Workbook

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ для чтСния ΠΈ понимания. ΠŸΡ€ΠΎΡ‰Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ прСимущСство Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Sub OtkrKnigaPerem()

    Dim wrk As Workbook
    Set wrk = Workbooks.Open("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm")

    ' Π Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ количСство листов Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅
    Debug.Print wrk.Worksheets.Count
    Debug.Print wrk.Name

    wrk.Close

End Sub

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΈΠ·
ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ.

НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Sub OtkrKnigaNetPerem()

   Workbooks.Open ("C:\Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹\Книга1.xlsm")

   Debug.Print Workbooks("Книга2.xlsm").Worksheets.Count
   Debug.Print Workbooks("Книга2.xlsm").Name

    Workbooks("Книга2.xlsm").Close

End Sub

Π’ этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ€Π°Π·Π½ΠΈΡ†Π° нСсущСствСнная. Однако, ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, использованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π² частности, для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Π±Ρ‹Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ thisWorkbook.Worksheets («Лист1Β»). Range (Β«A1Β»).

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³ΠΈ ΠΊΠ°ΠΊ wrkRead ΠΈΠ»ΠΈ wrkWrite. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ,
для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ эта ΠΊΠ½ΠΈΠ³Π°.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Для создания Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ добавлСния Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΊΠ½ΠΈΠ³. Π­Ρ‚Π° функция создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ. Π­Ρ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «Новая ΠΊΠ½ΠΈΠ³Π°Β» Π² мСню Β«Π€Π°ΠΉΠ» ExcelΒ».

 Когда
Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, Π²Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄
ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π°ΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Sub SozdatKnigu()

    Dim wrk As Workbook
    Set wrk = Workbooks.Add

    ' Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ xlsx. Π­Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
    wrk.SaveAs "C:\Temp\ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsx"

    ' Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρƒ
    wrk.SaveAs "C:\Temp\ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsm", xlOpenXMLWorkbookMacroEnabled

End Sub

Когда Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΎΠ½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит Ρ‚Ρ€ΠΈ листа. Π­Ρ‚ΠΎ опрСдСляСтся свойством Application.SheetsInNewWorkbook.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Π±Ρ‹Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ количСство
листов, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ это свойство ΠΏΠ΅Ρ€Π΅Π΄ созданиСм Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ с сСмью листами.

Sub SozdatKniguMnStr()

    ' Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ SheetsInNewWorkbook, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅
    Dim sheetCnt As Long
    sheetCnt = Application.SheetsInNewWorkbook

    ' УстановитС листы Π² Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ 7
    Application.SheetsInNewWorkbook = 7

    ' Рабочая ΠΊΠ½ΠΈΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ создана ΠΈΠ· 7 листов
    Dim wrk As Workbook
    Set wrk = Workbooks.Add

    ' ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ количСство листов
    Debug.Print "number of sheets: " &amp; CStr(wrk.Worksheets.Count)

    ' Бброс ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
    Application.SheetsInNewWorkbook = sheetCnt

End Sub

With ΠΈ Workbook

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово With ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ написаниС ΠΊΠΎΠ΄Π° VBA.
ИспользованиС с ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π‘
ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅
Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Subs. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΊΠΎΠ΄,
ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово With. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅
ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ΄ Π³ΠΎΡ€Π°Π·Π΄ΠΎ понятнСС Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Sub. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова End With ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚
ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠ΄Π° Ρ€Π°Π·Π΄Π΅Π»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ With.

' НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово With
Sub NeIspWith()

   Debug.Print Workbooks("Книга2.xlsm").Worksheets.Count
   Debug.Print Workbooks("Книга2.xlsm").Name
   Debug.Print Workbooks("Книга2.xlsm").Worksheets(1).Range("A1")
   Workbooks("Книга2.xlsm").Close

End Sub

' ИспользованиС With Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ
Sub IspWith()

    With Workbooks("Книга2.xlsm")
        Debug.Print .Worksheets.Count
        Debug.Print .Name
        Debug.Print .Worksheets(1).Range("A1")
        .Close
    End With

End Sub

РСзюмС

НиТС приводится ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ основных ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

  1. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΊΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ThisWorkbook.
  2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Workbooks (Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€.xlsxΒ»).
  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Set Wrk = Workbooks.Open (Β«C: \ Папка\ ΠŸΡ€ΠΈΠΌΠ΅Ρ€. xlsxΒ»).
  4. Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ UserSelectWorkbook, прСдставлСнной Π²Ρ‹ΡˆΠ΅.
  5. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство SaveAs с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°.
  6. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π±Π΅Π· открытия, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ FileCopy.
  7. Π§Ρ‚ΠΎΠ±Ρ‹ ваш ΠΊΠΎΠ΄ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово With.
  8. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Workbook.
  9. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ For Every wk Π² Workbooks, Π³Π΄Π΅ wk β€” это пСрСмСнная Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.
  10. Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования ActiveWorkbook ΠΈ Workbooks (Index), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡ… ссылка Π½Π° Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ носит Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части этой ΡΡ‚Π°Ρ‚ΡŒΠΈ

Β Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ Π±Ρ‹Π» подробная ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΠ± ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΌ элСмСнтС VBA β€” Π Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Π― надСюсь, Ρ‡Ρ‚ΠΎ Π²Ρ‹ нашли Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Excel ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справляСтся со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ способами выполнСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… дСйствий, Π½ΠΎ нСдостатком являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΡ‚ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ нСсколько ΠΊΠ½ΠΈΠ³ ΠΈ ΠΏΠΎΠΈΠ³Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ. ВнСситС измСнСния Π² ΠΊΠΎΠ΄ ΠΈ посмотритС, ΠΊΠ°ΠΊ эти измСнСния Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ VBA.

Авторизация Π² Excel Π½Π° VBA

Авторизация Π² Excel Π½Π° VBA: созданиС Ρ„ΠΎΡ€ΠΌΡ‹, написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу Π²Π°ΠΌ ΠΎ создании Ρ„ΠΎΡ€ΠΌΡ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA.

Π§Ρ‚ΠΎ ΠΆΠ΅ прСдставляСт ΠΈΠ· сСбя авторизация Π² Excel? Π­Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ, с запросом Π²Π²ΠΎΠ΄Π° Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля, ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ листы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π² зависимости ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, ΠΏΠΎΠΌΠΈΠΌΠΎ открытия листов, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ограничСния Π½Π° дСйствия Π² Excel: Π·Π°ΠΏΡ€Π΅Ρ‚ форматирования ячССк, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк, столбцов, использованиС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², сцСнариСв ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Но ΠΎΠ±ΠΎ всСм ΠΏΠΎ порядку.

Авторизация Π² Excel: основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для Π½Π°Ρ‡Π°Π»Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠ΅Ρ…Π°Π»ΠΈ!

Авторизация Π² Excel: ΠΌΠ°ΠΊΠ΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Наш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… листов:

  1. Лист с привСтствиСм β€” СдинствСнный лист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ всСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π΄ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ
  2. Лист с Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠΌ (Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠΌ) β€” Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹/гистограммы β€” ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ со свойством VeryHidden*
  3. Лист с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ β€” источник расчСтов для Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Π°Β  β€” ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ со свойством VeryHidden
  4. Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹ΠΉ/тСхничСский лист β€” для хранСния Π»ΠΎΠ³ΠΈΠ½ΠΎΠ², ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ ΠΈ слуТСбной ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈΒ  β€” Ρ‚Π°ΠΊΠΆΠ΅, со свойством VeryHidden

*VeryHiddenβ€” свойство листа, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сам лист скрыт ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· использованиС Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Для Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Excel Π·Π°ΠΉΡ‚ΠΈ Π² мСню Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» β€” Β«Visual BasicΒ». Π”Π°Π»Π΅Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ лист ΠΈ Π² Π΅Π³ΠΎ свойствах (Β«PropertiesΒ») Π½Π°ΠΉΡ‚ΠΈ свойство Visible ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Β«2 β€” xlSheetVeryHiddenΒ».

ПослС этого лист станСт Β«ΠΎΡ‡Π΅Π½ΡŒ скрытым». ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойство VeryHidden ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π°ΠΌ макрос, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Π½Π°ΠΏΠΈΡˆΡƒ Ρ‡ΡƒΡ‚ΡŒ дальшС.

Авторизация Π² Excel: Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа

ПослС создания ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСсколько Π³Ρ€ΡƒΠΏΠΏ доступа ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ для Π½ΠΈΡ… ΠΏΡ€Π°Π²Π°. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π³Ρ€ΡƒΠΏΠΏ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΠΈ:

  1. Администраторы (Admin): доступны всС листы , Π² Ρ‚ΠΎΠΌ числС слуТСбный, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ограничСния.
  2. Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈ отвСтствСнныС Π·Π° Π΄Π°Π½Π½Ρ‹Π΅ (Head): доступны 2 Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… листа + стоит ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΊΠ½ΠΈΠ³ΠΈ.
  3. РядовыС сотрудники ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ (Worker): доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист с Π΄Π°ΡˆΠ±ΠΎΡ€Π΄ΠΎΠΌ + стоит ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ структуры ΠΊΠ½ΠΈΠ³ΠΈ.
Авторизация Π² Excel: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠ°ΠΊΠ΅Ρ‚Π° Ρ„ΠΎΡ€ΠΌΡ‹

Π‘ этим ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ:

  • ПолС Π²Π²ΠΎΠ΄Π° для Π»ΠΎΠ³ΠΈΠ½Π°
  • ПолС Π²Π²ΠΎΠ΄Π° для пароля
  • Кнопка «Авторизация» (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля)
  • Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ подписи Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅
  • По ТСланию: ΠΊΠ½ΠΎΠΏΠΊΠ° закрытия Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠ½ΠΎΠΏΠΊΠ° восстановлСния пароля, Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹, справка ΠΈ всС, Ρ‡Ρ‚ΠΎ Π΄ΡƒΡˆΠ΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ Π² VBA: Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² мСню Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» β€” Β«Visual BasicΒ», Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ (VBAProject НазваниС_Π€Π°ΠΉΠ»Π°.xlsx), Π·Π°Ρ‚Π΅ΠΌ Insert β€” UserForm. БоздаСтся Ρ„ΠΎΡ€ΠΌΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ UserForm1, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ всС наши ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мСню Β«ToolBoxΒ».

Если быстро Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ пСрСчислили, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

ПослС добавлСния элСмСнтов, помСнял ΠΈΡ… стандартныС названия:

Β«UserForm1Β» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π» Π² Β«AuthorizationΒ».
Β«TextBox1Β» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π» Π² Β«TextBox_LoginΒ».
Β«TextBox2Β» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π» Π² Β«TextBox_PassΒ». Β 

Π’Π°ΠΊΠΆΠ΅, Π² свойствах Β«TextBox_PassΒ», ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ свойство Β«PasswordCharΒ» ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ любой символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ вмСсто Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… символов пароля β€” Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Β«*Β».

НичСго лишнСго, ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ всС просто. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π΄Π°Π»Π΅Π΅.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° слуТСбного листа

Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, слуТСбный лист Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ список Π»ΠΎΠ³ΠΈΠ½ΠΎΠ², ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΎΠ³ΠΈΠ½Ρƒ Π³Ρ€ΡƒΠΏΠΏΡƒ доступа. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Β«ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒΒ» ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π·Π»ΠΎΠΌ (хотя Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ Excel ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ составит Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π°), ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π½Π° листС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Π·Π°Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ, Π½ΠΎ Π² Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ β€” это ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² строку фиксированной Π΄Π»ΠΈΠ½Ρ‹, состоящСй ΠΈΠ· Ρ†ΠΈΡ„Ρ€ ΠΈ Π±ΡƒΠΊΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… матСматичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² Excel, я расскаТу Π΄Π°Π»Π΅Π΅.

Π˜Ρ‚Π°ΠΊ, для Π½Π°Ρ‡Π°Π»Π°, содСрТимоС слуТСбного листа Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Авторизация Π² Excel: особСнности ΠΈ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° VBA

Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ тСсно взаимосвязаны ΠΌΠ΅ΠΆΠ΄Ρƒ собой, поэтому я ΠΈΡ… объСдинил Π² ΠΎΠ΄ΠΈΠ½ большой. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ для всСго нашСго Ρ„Π°ΠΉΠ»Π°: ΠΊΠ°ΠΊ для Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… событий.

Для Π½Π°Ρ‡Π°Π»Π°, ΠΌΡ‹ напишСм ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ листы Π² зависимости ΠΎΡ‚ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ послС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΠ°ΠΊΡ€ΠΎΡ user_group ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ ΠΈ Π²ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π½Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° Π² Π½Π°ΡˆΡƒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽΒ Ρ„ΠΎΡ€ΠΌΡƒ Authorization. АргумСнтом для макроса являСтся пСрСмСнная X, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа Π² Π²ΠΈΠ΄Π΅ тСкстовой строки String:

Private Sub user_group(ByVal X As String)
Dim Sht As Worksheet 'создаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° Π Π°Π±ΠΎΡ‡ΠΈΠΉ Лист

ActiveWorkbook.Unprotect "112" 'Π‘Π½ΠΈΠΌΠ°Π΅ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρƒ структуры ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ

For Each Sht In ThisWorkbook.Sheets 'ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС листы ΠΊΠ½ΠΈΠ³ΠΈ
    If (X = "Admin") Then Sht.Visible = -xlSheetVisible 'Ссли Ρ€ΠΎΠ»ΡŒ Admin - ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ лист Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ
    If (X = "Head") And (Sht.Name <> "Settings") Then Sht.Visible = -xlSheetVisible 'Ссли Ρ€ΠΎΠ»ΡŒ Head - Π²ΠΈΠ΄Π½Ρ‹ всС, ΠΊΡ€ΠΎΠΌΠ΅ Settings
    If (X = "Worker") And (Sht. Name = "Dashboard") Then Sht.Visible = -xlSheetVisible 'Ссли Ρ€ΠΎΠ»ΡŒ Worker - Π²ΠΈΠ΄Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Dashboard
Next Sht

'Ссли Ρ€ΠΎΠ»ΡŒ Π»ΠΈΠ±ΠΎ Head, Π»ΠΈΠ±ΠΎ Worker - ставим Π·Π°Ρ‰ΠΈΡ‚Ρƒ Π½Π° структуру ΠΊΠ½ΠΈΠ³ΠΈ с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ "112"
If (X = "Head") Or (X = "Worker") Then ActiveWorkbook.Protect Password:="112", Structure:=True, Windows:=False

End Sub

Π₯ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нашСго Ρ„Π°ΠΉΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Β«Π·Π°Ρ‰ΠΈΡ‚Π° структуры ΠΊΠ½ΠΈΠ³ΠΈΒ» с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ Β«112Β», Ρ‚.Π΅. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ смоТСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ листы нашСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. И, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ листов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡΠ½ΡΡ‚ΡŒ эту Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ, Π² зависимости ΠΎΡ‚ Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π² нашСм ΠΊΠΎΠ΄Π΅.

Π”Π°Π»Π΅Π΅, ΠΊΠΎΠ΄ для ΠΊΠ½ΠΎΠΏΠΊΠΈ «Авторизация». ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ, запускаСтся нСсколько ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ»Π΅ΠΉ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈ пароля Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ β€” выводится ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ макроса прСкращаСтся.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Check: данная пСрСмСнная Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ…Β» ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Ρ…ΠΎΠ΄Π°. Π•Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² основном ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ: Public check As Integer. Если данная пСрСмСнная большС 3Ρ… β€” доступ ΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии блокируСтся.
  • Поиск ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΎΠ³ΠΈΠ½Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° листС Β«SettingsΒ». Если Π»ΠΎΠ³ΠΈΠ½ Π½Π°ΠΉΠ΄Π΅Π½ β€” Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΈ сравниваСтся с Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ Ρ…Π΅ΡˆΠ΅ΠΌ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкС Π»ΠΎΠ³ΠΈΠ½Π°:
    • Если всС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ β€” запускаСтся макрос User_Group, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ доступ ΠΊ листам Π² зависимости ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠ½Ρƒ.
    • Если Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прСдупрСТдаСтся ΠΎΠ± этом, Π° Ρ‚Π°ΠΊΠΆΠ΅ наращиваСтся счСтчик Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • Π’ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΌΡΡ случаС (всС Π²Π²Π΅Π΄Π΅Π½ΠΎ, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Ρ‚Π°ΠΊΠΈΠΌ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ увСдомляСтся.
Private Sub CommandButton1_Click()
If (TextBox_Login = "") Or (TextBox_Pass = "") Then 'ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π»ΠΎΠ³ΠΈΠ½Π°/пароля
    MsgBox "НС Π²Π²Π΅Π΄Π΅Π½ Π»ΠΎΠ³ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ!", vbInformation + vbOKOnly, "Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!"
    Exit Sub
End If

If (check > 3) Then 'ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° количСство ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ
    MsgBox "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ большС Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·.  Доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½!", vbCritical + vbOKOnly, "Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅"
    Exit Sub
End If

LastRow = Sheets("Settings").Cells(Rows.Count, 1).End(xlUp).Row 'ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° списка Π»ΠΎΠ³ΠΈΠ½ΠΎΠ²
For i = 2 To LastRow
    If TextBox_Login = Sheets("Settings").Cells(i, 1) Then 'Ссли логин найдСн
        If Sheets("Settings").Cells(i, 2) = GetHash(TextBox_Pass.Value) Then 'ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΈ сравниваСтся с Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ Ρ…Π΅ΡˆΠ΅ΠΌ
            user_group Sheets("Settings").Cells(i, 3).Value 'ΠΈ Ссли всС ΠΎΠΊ - запускаСтся макрос разграничСния Π³Ρ€ΡƒΠΏΠΏ доступа
            Unload Authorization
            Exit Sub
        Else 'Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС - ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅
            MsgBox "НСвСрный ΠΏΠ°Ρ€ΠΎΠ»ΡŒ", vbCritical + vbOKOnly, "Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!"
            check = check + 1 'Ρ‚Π°ΠΊΠΆΠ΅ наращиваСтся счСтчик Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ
            Exit Sub
        End If
    End If
Next i

'Π² ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΌΡΡ случаС - увСдомлСния ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Π»ΠΎΠ³ΠΈΠ½Π΅. 
MsgBox "ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Π΄Π°Π½Π½Ρ‹ΠΌ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ Π½Π΅ сущСствуСт.", vbInformation + vbOKOnly, "Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!"

End Sub

В макросС CommandButton1_Click ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция GetHash (строка 15), которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ входящиС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ…Π΅Ρˆ. Данная функция взята с сайта ExcelVba.ru, Π·Π° Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽ ΠΈΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ. Код Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ:

Function GetHash(ByVal txt$) As String
    Dim oUTF8, oMD5, abyt, i&, k&, hi&, lo&, chHi$, chLo$
    Set oUTF8 = CreateObject("System.Text.UTF8Encoding")
    Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
    abyt = oMD5.ComputeHash_2(oUTF8.GetBytes_4(txt$))
    For i = 1 To LenB(abyt)
        k = AscB(MidB(abyt, i, 1))
        lo = k Mod 16: hi = (k - lo) / 16
        If hi > 9 Then chHi = Chr(Asc("a") + hi - 10) Else chHi = Chr(Asc("0") + hi)
        If lo > 9 Then chLo = Chr(Asc("a") + lo - 10) Else chLo = Chr(Asc("0") + lo)
        GetHash = GetHash & chHi & chLo
    Next
    Set oUTF8 = Nothing: Set oMD5 = Nothing
End Function

Основной ΠΊΠΎΠ΄ написан, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠΌ.

ΠœΠ°ΠΊΡ€ΠΎΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Ρ„ΠΎΡ€ΠΌΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ листС Β«MainΒ»):

Sub Authorization_Start()
    Authorization.Show
End Sub

Π’Π°ΠΊΠΆΠ΅, макрос ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ событии Β«OpenΒ» β€” ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ:

Private Sub Workbook_Open()
    Authorization_Start
End Sub

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ запуск макросов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ листС Main Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ «памятки» со справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ макросов.

ΠœΠ°ΠΊΡ€ΠΎΡ для закрытия ΠΊΠ½ΠΈΠ³ΠΈ.

ΠŸΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ со структуры ΠΊΠ½ΠΈΠ³ΠΈ, Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всС листы (ΠΊΡ€ΠΎΠΌΠ΅ листа Β«MainΒ»), Π° Π·Π°Ρ‚Π΅ΠΌ снова Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ структуры ΠΊΠ½ΠΈΠ³ΠΈ с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ Β«112Β» (ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠ½ΠΎΠΏΠΊΡƒ):

Sub close_book()
Dim Sht As Worksheet
ActiveWorkbook.Unprotect "112"
For Each Sht In ThisWorkbook.Sheets
    If Sht.Name <> "Main" Then Sht.Visible = xlSheetVeryHidden
Next Sht
ActiveWorkbook.Protect Password:="112", Structure:=True, Windows:=False
End Sub

Π”Π°, Π΄Π°Π½Π½Ρ‹ΠΉ макрос ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ событии Β«BeforeCloseΒ» β€” ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΈΠ³ΠΈ. Однако, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

  • Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сохраняСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎ закрытия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚,Β  Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈ автоматичСском запросС ΠΎ сохранСнии Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Β«Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΒ». Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, ΠΏΡ€ΠΈ Π½ΠΎΠ²ΠΎΠΌ запускС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, скрытыС листы Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹ всСм. Π”Π°, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ события ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ°Π»Π°, Π½ΠΎ ΠΎΠ½Π° всС-Ρ‚Π°ΠΊΠΈ Π΅ΡΡ‚ΡŒ.
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        close_book
    End Sub
  • Если Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сохранСниС послС скрытия всСх листов, ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° (ΠΊΠ°ΠΊ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅). Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‡Π΅Π½ΡŒ сильно ΠΎΡˆΠΈΠ±Π΅Ρ‚ΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° крСстик, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ всС с нуля β€” Ρ„Π°ΠΉΠ» всС Ρ€Π°Π²Π½ΠΎ сохранится ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ исходныС Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ получится.
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Application.ScreenUpdating = False
        close_book
        ThisWorkbook.Save
    End Sub

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ситуации, я Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ, ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, свСдСт Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ: ΠΏΠΎΠΌΠΈΠΌΠΎ выполнСния макроса close_book ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΈΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ события Β«BeforeCloseΒ» (ΠΊΠ°ΠΊ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅), ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ сохранСниСм Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ события BeforeSave:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    close_book
End Sub

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ памятку ΠΏΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ макросов Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ листС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ шаг, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ всС наши ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹Π΅ дСйствия Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ смысла β€” ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ VBA: МСню Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ» β€” Β«Visual BasicΒ» β€” Β«ToolsΒ» β€” Β«VBAProject β€” Project PropertiesΒ» β€” Π’ΠΊΠ»Π°Π΄ΠΊΠ° Β«ProtectionΒ» β€” ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«Lock project for viewingΒ» ΠΈ ввСсти ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ «Ок».

БохраняСм Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«.xlsbΒ» ΠΈΠ»ΠΈ Β«.xlsmΒ» ΠΈ всС, наша «Авторизация Π½Π° VBAΒ» Π³ΠΎΡ‚ΠΎΠ²Π°. Помимо этого, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΅Ρ‰Π΅ сильнСС β€” ΠΎ способах Π·Π°Ρ‰ΠΈΡ‚Ρ‹ написано ΠΌΠΎΠ΅ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Π’Π°ΠΊΠΆΠ΅, ΠΏΠΎ ТСланию, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ для администраторов, для добавлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° лист Β«SettingsΒ», Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ для восстановлСния пароля ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову, Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ.

ο»Ώ


Β 5.7Β Β Β 
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сСмСйства WorkSheets

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet прСдставляСт собой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свойства ActiveSheet ΠΈΠ»ΠΈ Worksheets ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Workbook.

Бвойства
ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сСмСйства
WorkSheets

Бвойства

ОписаниС ΠΈ допустимыС значСния

Name

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа: Worcsheets(1).Name=β€Π˜Ρ‚ΠΎΠ³ΠΈβ€

Visible

True (False) – Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Π²ΠΈΠ΄ΠΈΠΌ
(Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ) Π½Π° экранС.

Range

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
ячССк. НапримСр:
ActiveSheet.Range(«B1»)

Β 

UsedRange

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ
листа.

ActiveCell

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ячСйку Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ
листа.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сСмСйства
Worksheets

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

ВыполняСмыС дСйствия

Activate

АктивизируСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист:

Β Worksheet(2).Activate

Add

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист. Β ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Β Before – лист, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚
Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ лист;

After – лист послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½
Π½ΠΎΠ²Ρ‹ΠΉ лист;

Count – число добавляСмых листов;

Type – Ρ‚ΠΈΠΏ добавляСмого листа.

НапримСр, ActiveWorkbook.Worksheets.Add

Delete

УдаляСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист:

Β Worksheets(1).Delete

Evaluate

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
Excel ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
для Π²Π²ΠΎΠ΄Π° ссылок Π½Π° ячСйки:

MyCell =
InputBox(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя ячСйки»)

Evaluate(myCell).Value = «ΠΠΎΠ²ΠΎΠ΅
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅»

Β 

Copy

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Π²
Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ: Worksheets(β€œΠ›ΠΈΡΡ‚2”). _

Copy After:=
Worksheets(β€œΠ›ΠΈΡΡ‚3”)

Move

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Π²
Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ: Worksheets(β€œΠ›ΠΈΡΡ‚2”). _

Move
After:= Worksheets(β€œΠ›ΠΈΡΡ‚3”)

Β 

Бобытия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Worksheet

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅

Когда происходит

BeforeClose

ΠŸΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

BeforeSave

ΠŸΠ΅Ρ€Π΅Π΄ сохранСниСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ
ΠΊΠ½ΠΈΠ³ΠΈ.

Deactivate

Когда рабочая ΠΊΠ½ΠΈΠ³Π° тСряСт
фокус.

NewSheet

ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ листа Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ
ΠΊΠ½ΠΈΠ³Ρƒ.

Open

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

SheetActivate

ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа.

SheetDeactivate

Когда Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист тСряСт
фокус.

5.8Β Β Β 
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Range

5.2.1Β Β Β Β Β Β 
АдрСсация ячССк Π² Excel

Для ссылок Π½Π° ячСйки Π² Excel ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ 2
Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:


Π€ΠΎΡ€ΠΌΠ°Ρ‚ A1

Бсылка состоит ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ столбца
(ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ ΠΎΡ‚ A Π΄ΠΎ IV, 256 столбцов максимально) ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°
строки (ΠΎΡ‚ 1 Π΄ΠΎ 65536). НапримСр, A77. Для ссылки Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк,
ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ адрСса Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ ячСйки Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°,
Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ.

 НапримСр, Π’10:Π’20, 7:7 (всС ячСйки Π² 7–й
строкС), 5:10 (всС ячСйки ΠΌΠ΅ΠΆΠ΄Ρƒ 5-ΠΉ ΠΈ 10-ΠΉ строками Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ), D:D
(всС ячСйки Π² столбцС D), H:J (всС ячСйки ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами H ΠΈ J
Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ). ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ ссылки являСтся Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄
ΠΈΠΌΠ΅Π½Π΅ΠΌ строки ΠΈΠ»ΠΈ столбца.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ R1C1

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ R1C1, послС Π±ΡƒΠΊΠ²Ρ‹ β€œR”
указываСтся Π½ΠΎΠΌΠ΅Ρ€ строки ячСйки, послС Π±ΡƒΠΊΠ²Ρ‹ β€œC” – Π½ΠΎΠΌΠ΅Ρ€ столбца.
НапримСр, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ ссылка R1C1 эквивалСнтна Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΉ ссылкС $A$1 для
Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° A1. Для задания ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ссылки указываСтся смСщСниС ΠΏΠΎ
ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ячСйкС. Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ указываСтся Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках.
Π—Π½Π°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ смСщСния. НапримСр, R[-3]C (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ
ссылка Π½Π° ячСйку, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° Ρ‚Ρ€ΠΈ строки Π²Ρ‹ΡˆΠ΅ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ столбцС).
R[2]C[2] (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ссылка Π½Π° ячСйку, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° Π΄Π²Π΅ строки Π½ΠΈΠΆΠ΅
ΠΈ Π½Π° Π΄Π²Π° столбца ΠΏΡ€Π°Π²Π΅Π΅). R2C2 (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ ссылка Π½Π° ячСйку, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ
Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС ΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ столбцС). R[-1] (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ссылка Π½Π°
строку, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ячСйки), R (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ ссылка Π½Π°
Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ строку).

ΠŸΠΎΠ»Π½Ρ‹ΠΉ адрСс ячСйки ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ имя
Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈ адрСс ΠΊΠ½ΠΈΠ³ΠΈ. ПослС ΠΈΠΌΠ΅Π½ΠΈ листа ставится Π·Π½Π°ΠΊ β€œ!”, Π° адрСс ΠΊΠ½ΠΈΠ³ΠΈ
Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. НапримСр:

Β [МояКнига.xls]Лист1!D2.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Range ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с
ячСйками, строками, столбцами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ. Для доступа ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ‡Π°Ρ‰Π΅
всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ свойства Range ΠΈ Cells, хотя Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство Range, Ρ‚ΠΎ Π² качСствС
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° указываСтся любая допустимая Π² Excel ссылка Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ A1. Если имя
листа Π½Π΅ указываСтся, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист. НапримСр:

‘Π―Ρ‡Π΅ΠΉΠΊΠ΅
A5 листа Лист1 ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5

Worksheets(«Π›ΠΈΡΡ‚1»).Range(«A5»).Value =
5

‘Π―Ρ‡Π΅ΠΉΠΊΠ΅
A5 Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5

Range(«A5»).Value = 5

Бвойство Cells ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ
ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйкС. Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΈ столбца.
НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ячСйкС A5 ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа:

Worksheets(1).Cells(5,1).Value =
5

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство Cells для
Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ указания Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. НапримСр:

Β Range(«A2:C3») ΠΈ Range(Cells(2,1),
Cells(3,3))

ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

5.2.18Β 
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Range

Бвойства

ОписаниС и
допустимыС значСния

Value

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ячСйки ΠΈΠ»ΠΈ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°: X=Range(β€œA2”).Value

Name

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°:

Range(β€œB1:B4”).Name=β€Π˜Ρ‚ΠΎΠ³ΠΎβ€

CurrentRagion

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство строк Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

WrapText

True (False) – Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ (Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚)
пСрСнос тСкста ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

EntireColumn,

EntireRow

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку ΠΈ столбСц.

ColumnWidth,

RowHeight

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбцов ΠΈ высоту строк
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Font

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Font (ΡˆΡ€ΠΈΡ„Ρ‚).
НапримСр:

With
Worksheets(«Π›1»).Range(«B5»).Font

Β Β Β Β Β Β Β Β Β Β Β 
.Size = 14

Β Β Β Β Β Β Β Β Β Β Β 
.Bold = True

Β Β Β Β Β Β Β Β Β Β Β 
.Italic = True

End With

Β 

Formula

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ A1. НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ
ввСсти Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ Π² ячСйку B5:

Range(«B5»).Formula = «=$A$4+$A$10»

ΠŸΡ€ΠΈ считывании значСния, возвращаСтся
тСкстовая строка (ΠΊΠ°ΠΊ Π² строкС Ρ„ΠΎΡ€ΠΌΡƒΠ»).

Β 

FormulaLocal

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ A1 с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ языка
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (для нСанглоязычных вСрсий Excel). НапримСр:

Range(«B5»).FormulaLocal = «=ПИ()»

Β 

FormulaR1C1

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ R1C1. НапримСр,

Range(«B1»).FormulaR1C1 = «=R1C1+1»

Β 

FormulaR1C1Local

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ R1C1с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ языка
ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (для нСанглоязычных вСрсий Excel).

Β 

HorizontalAlignment

Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅
значСния: xlHAlignGeneral (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅), xlHAlignCenter (ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ),
xlHAlignCenterAcrossSelection (ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρƒ выдСлСния), xlHAlignJustify (ΠΏΠΎ
ΡˆΠΈΡ€ΠΈΠ½Π΅), xlHAlignLeft (ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ), or xlHAlignRight (ΠΏΠΎ ΠΏΡ€Π°Π²ΠΎΠΌΡƒ ΠΊΡ€Π°ΡŽ)
ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

VerticalAlignment

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅
значСния: xlVAlignBottom (ΠΏΠΎ Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ), xlVAlignCenter (ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ),
xlVAlignTop (ΠΏΠΎ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌΡƒ ΠΊΡ€Π°ΡŽ) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Range ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅
большиС Π³Ρ€ΡƒΠΏΠΏΡ‹: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, относящиСся ΠΊ самому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅
ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. МногиС ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ здСсь ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ лишь частично.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² справочной
систСмС Excel. Для изучСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, рСкомСндуСтся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ
макрос, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

5.2.19Β 
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Range

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

ДСйствия

Adress

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс ячСйки.

AutoFit

АвтоматичСски настраиваСт ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца
ΠΈ высоту строки. НапримСр:

Range(«B1:B3»).Columns.AutoFit

ИспользованиС свойства Columns ΠΈΠ»ΠΈ Rows Π²
Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ строки
ΠΈΠ»ΠΈ столбцы, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ошибка.

Β 

Clear

ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. НапримСр:

Range(«A1:Π‘5»).Clear

Β 

Copy

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ
Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° (Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Destination Π½Π΅ Π·Π°Π΄Π°Π½). НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ
ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния с ΠΎΠ΄Π½ΠΎΠ³ΠΎ листа (Π›1) Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Π›2):

Worksheets(«Π›1»).Range(«A1:Π’3»).Copy _

Destination:=Worksheets(«Π›2»).Range(«A5»)

Β 

Cut

ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° (Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Destination Π½Π΅ Π·Π°Π΄Π°Π½). НапримСр,
скопируСм Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π°:

Worksheets(«Π›ΠΈΡΡ‚2»).Range(«A1:D4»).Cut

Β 

Delete

УдаляСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Shift
опрСдСляСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сдвига ячССк. НапримСр:

Range(«A6:D6»).Delete Shift:=xlShiftToLeft

Β 

Insert

ВставляСт ячСйку ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ячССк.
НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ строку ΠΏΠ΅Ρ€Π΅Π΄ ΡˆΠ΅ΡΡ‚ΠΎΠΉ строкой Π½Π° листС
«Π›ΠΈΡΡ‚2»:

Worksheets(«Π›ΠΈΡΡ‚2»).Rows(6).Insert

Β 

Select

ВыдСляСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½:

Range(«A1:C7»).Select

Β 

5.2.20Β 
ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Range, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
Excel

ΠšΡ€ΠΎΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Range
ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Excel.

ΠœΠ΅Ρ‚ΠΎΠ΄

ДСйствия

DataSeries

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡŽ.

DataSeries(rowcol,date,step,stop,trend)
Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠŸΡ€Π°Π²ΠΊΠ°, Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΡ.

Β 

AutoFill

АвтозаполнСниС-автоматичСски заполняСт
ячСйки Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° элСмСнтами ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠžΠ±ΡŠΠ΅ΠΊΡ‚(Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½,
Π’ΠΈΠΏ).

Β 

AutoFilter

ΠΠ²Ρ‚ΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€-Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ запрос Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ
Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚.AutoFilter(ПолС, УсловиС1,
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, УсловиС2). БоотвСтствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π”Π°Π½Π½Ρ‹Π΅,
Π€ΠΈΠ»ΡŒΡ‚Ρ€, ΠΠ²Ρ‚ΠΎΡ„ΠΈΠ»ΡŒΡ‚Ρ€
.

Β 

AdvancedFilter

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€. БоотвСтствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π΅
Π”Π°Π½Π½Ρ‹Π΅, Π€ΠΈΠ»ΡŒΡ‚Ρ€,
Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉΒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€
.

Β 

Consolidate

ОбъСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Π² ΠΎΠ΄Π½Ρƒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. БоотвСтствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π”Π°Π½Π½Ρ‹Π΅, ΠšΠΎΠ½ΡΠΎΠ»ΠΈΠ΄Π°Ρ†ΠΈΡ.

Β 

Find

Поиск Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ вызываСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
ΠŸΡ€Π°Π²ΠΊΠ°, Найти.

Β 

GoalSeek

ΠŸΠΎΠ΄Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ выполняСтся с
ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ БСрвис,
ΠŸΠΎΠ΄Π±ΠΎΡ€Β ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°
.

Β 

Sort

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ выполняСтся с
ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π”Π°Π½Π½Ρ‹Π΅, Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°.

Β 

Subtotal

ДобавляСт ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΈΡ‚ΠΎΠ³ΠΈ. Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ
вызываСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π”Π°Π½Π½Ρ‹Π΅,
ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅Β ΠΈΡ‚ΠΎΠ³ΠΈ
.

Β 

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5.Β Β Β Β Β Β Β 

Β 

Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Range
ΠΈ Selection

Π—Π°Π΄Π°Π½ΠΈΠ΅:

4.       На
Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС с ΠΈΠΌΠ΅Π½Π΅ΠΌ Лист1 помСститС ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ„ΠΎΡ€ΠΌΡ‹.

5.Β Β Β Β Β Β 
ΠΠ°Π·Π½Π°Ρ‡ΡŒΡ‚Π΅ для этой ΠΊΠ½ΠΎΠΏΠΊΠΈ макрос с ΠΈΠΌΠ΅Π½Π΅ΠΌ Кнопка1_Π©Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ

6.Β Β Β Β Β Β  Π’ ΠΎΠΊΠ½Π΅
рСдактирования ΠΊΠΎΠ΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Visual Basic Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

7.Β Β Β Β Β Β 
ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΡ…
Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ синтаксис записи. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° тСкст ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

8.Β Β Β Β Β Β 
ЗапуститС макрос Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

9.Β Β Β Β Β Β 
ΠŸΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ дСйствия выполняСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

10.Β Β  Π‘ΠΎΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ
выполняСмыС Π΅ΠΉ дСйствия

Β 

Option Explicit

Sub
Кнопка1_Π©Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ()

‘Π’ ячСйку А1
записываСтся тСкст

Range(«A1″).Value = » Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5 »

‘ВыдСляСтся
ячСйка А1

Range(«A1»).Select

With Selection

‘ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ
адрСс Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ячСйки

MsgBox «ΠΠ΄Ρ€Π΅Ρ
Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ячСйки» & .B2″

‘ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ
количСство строк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅

MsgBox
«ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π² области А1:Π‘2 =» & Range(«A1:C2») _

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β 
.Rows.Count

MsgBox
«ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅» & Range(«A1») _

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β 
.CurrentRegion.Rows.Count

‘ΠžΡ‡ΠΈΡ‰Π°Π΅ΠΌ
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

Range(«A1:C2»).Clear

β€˜ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
Cells

Cells(1, 1) =
» Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5 »

End Sub

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 6.Β Β Β Β Β Β Β 

Β 

Π—Π°Π΄Π°Π½ΠΈΠ΅. ΠŸΡƒΡΡ‚ΡŒ Π½Π°
Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС имССтся Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ Π»Π΅Π²ΠΎΠΉ ячСйкС Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки находится
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС – Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ столбцов. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… строках
– Π΄Π°Π½Π½Ρ‹Π΅. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ извСстно. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ,
ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ: размСстит Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ
Π½Π°Π΄ столбцами, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΡˆΡ€ΠΈΡ„Ρ‚ (Ρ€Π°Π·ΠΌΠ΅Ρ€ – 14, курсив, Ρ†Π²Π΅Ρ‚ – красный), Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ
столбцов располоТит Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ΡˆΡ€ΠΈΡ„Ρ‚ Π½Π° ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ. Π’ ΠΎΠΊΠ½Π΅ Ρ‚Π°ΠΊΠΆΠ΅ имССтся
ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ячССк ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для
ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ячССк. Π’ΠΈΠ΄ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ форматирования ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π°
рис.5.13, 5.14.

Рис. 6.3. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

Рис. 6.4. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
форматирования

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

1.Β Β Β Β Β Β  Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅
ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½Π° рис.6.3 Ρ„ΠΎΡ€ΠΌΡƒ. На Π½Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ элСмСнт Надпись, Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ
элСмСнт RefEdit. УстановитС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свойства элСмСнтов.

2.Β Β Β Β Β Β  Π’ ΠΎΠ±Ρ‰Π΅ΠΉ
области ΠΎΠΊΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ„ΠΎΡ€ΠΌΡ‹ Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

Dim myR
As Range

Dim
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ As Range

Dim
Названия As Range

Dim c As
Integer

Dim r As
Integer

Β 

3.Β Β Β Β Β Β  ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅
ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Click для ΠΊΠ½ΠΎΠΏΠΎΠΊ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ
Ρ‚Π°ΠΊΠΈΠΌΠΈ:

Β 

Private Sub
ΠšΠ½ΠΎΠΏΠΊΠ°Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ_Click()

Β Β Β Β Β Β Β 
‘присваиваСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ myR Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ссылка Π½Π°

Β Β Β 
‘Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ бСрСтся ΠΈΠ· элСмСнта RefEdit)

Β Β Β  Set myR
= Range(RefEdit1.Text)

Β Β Β  r =
myR.Rows.CountΒ 
‘число строк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅

Β Β Β  c =
myR.Columns.Count ‘число столбцов Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅

Β Β Β  Set
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ = Range(myR.Cells(1,1), myR.Cells(1,c))

Β Β Β  Set
Названия = Range(myR.Cells(2,1), myR.Cells(2,c))

Β Β Β 

Β Β Β 
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.Select

Β Β Β 
Selection.HorizontalAlignment = xlCenterAcrossSelection

Β Β Β  With
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ.Font

Β Β Β Β Β Β Β  .Name =
«Arial Cyr»

Β Β Β Β Β Β Β 
.FontStyle = «ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ курсив»

Β Β Β Β Β Β Β  .Size =
14

Β Β Β Β Β Β Β 
.ColorIndex = 3

Β Β Β  End
With

Β Β Β Β Β Β Β 
Названия.HorizontalAlignment = xlCenter

Β Β Β  With
Названия.Font

Β Β Β Β Β Β Β  .Name =
«Arial Cyr»

Β Β Β Β Β Β Β 
.FontStyle = «ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ»

Β Β Β Β Β Β Β  .Size =
10

Β Β Β  End
With

End
Sub

Private
Sub ΠšΠ½ΠΎΠΏΠΊΠ°Π£Π±Ρ€Π°Ρ‚ΡŒΠ€ΠΎΡ€ΠΌΠ°Ρ‚_Click()

Β Β Β  Set myR
= Range(RefEdit1.Text)

Β Β Β 
myR.ClearFormats

End
Sub

4.Β Β Β Β Β Β 
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠΊΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ,
Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΡƒΡŽ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС.


Β Β  ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°ΡΒ Β Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°ΡΒ Β Π’ содСрТаниС Ρ‚Π΅ΠΌΡ‹

Border ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — ΠžΠ±Ρ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ — ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния — Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ VBA

Β Β Β Β Β Β  Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ имССтся Ρƒ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΈΠ»ΠΈ нСсколько Π³Ρ€Π°Π½ΠΈΡ† (сторон ΠΈΠ»ΠΈ Π³Ρ€Π°Π½Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°).

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ измСняСт тип Π»ΠΈΠ½ΠΈΠΈ строки Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅.

With ActiveChart.SeriesCollection(1).Trendlines(1)

Β Β Β  .Type = xlLinear

Β Β Β  .Border.LineStyle = xlDash

End With

Β Β Β Β Β  Π£ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Range ΠΈ Style Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ дискрСтных Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ — лСвая (left), правая (right), вСрхняя (top), ΠΈ ниТняя (bottom) — ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойство Borders, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Borders, которая содСрТит всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ добавляСт Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΊ ячСйкС A1 Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ листС ΠΎΠ΄ΠΈΠ½.

Worksheets(1).Range(«A1»).Borders.LineStyle = xlDouble

Β 

Β Β Β Β Β Β  Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Borders(index), Π³Π΄Π΅ index ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ячССк A1:G1.

Worksheets(«Sheet1»).Range(«A1:G1»). _

Β  Β Β Borders(xlEdgeBottom).Color = RGB(255, 0, 0)

Index ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ  константы XlBordersIndex:

  • xlDiagonalDown=5 — Π“Ρ€Π°Π½ΠΈΡ†Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

  • xlDiagonalUp = 6 — Π“Ρ€Π°Π½ΠΈΡ†Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Π΄ΠΎ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.
  • xlEdgeBottom = 9 — Π“Ρ€Π°Π½ΠΈΡ†Π° Π²Π½ΠΈΠ·Ρƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • xlEdgeLeft = 7 — Π“Ρ€Π°Π½ΠΈΡ†Π° Π½Π° Π»Π΅Π²ΠΎΠΌ ΠΊΡ€Π°ΡŽ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • xlEdgeRight = 10 — Π“Ρ€Π°Π½ΠΈΡ†Π° Π½Π° ΠΏΡ€Π°Π²ΠΎΠΌ ΠΊΡ€Π°ΡŽ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • xlEdgeTop = 8 — Π“Ρ€Π°Π½ΠΈΡ†Π° Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • xlInsideHorizontal = 12 — Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ для всСх ячССк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΊΡ€ΠΎΠΌΠ΅ Π³Ρ€Π°Π½ΠΈΡ† Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • xlInsideVertical = 11 — Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ для всСх ячССк Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΊΡ€ΠΎΠΌΠ΅ Π³Ρ€Π°Π½ΠΈΡ† Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Β 

ΠœΠ΅Ρ‚ΠΎΠ΄

ОписаниС

ApplicationКогда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ спСцификатора, это свойство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Application, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Microsoft Excel. Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌ спСцификатором, это свойство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Application, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт создатСля ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это свойство с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ OLE Automation, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). Волько для чтСния
Color

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ основной Ρ†Π²Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ RGB, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Ρ†Π²Π΅Ρ‚Π°.

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.Color

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚

Π¦Π²Π΅Ρ‚

Border

Β Π¦Π²Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Borders

Β Π¦Π²Π΅Ρ‚ всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π³Ρ€Π°Π½ΠΈΡ† Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. Если ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ всСми ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚, Π¦Π²Π΅Ρ‚ возвращаСтся 0 (Π½ΡƒΠ»ΡŒ).

Font

Β Π¦Π²Π΅Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚Π°

Interior

Β Π―Ρ‡Π΅ΠΉΠΊΠ°, ΠΎΡ‚Ρ‚Π΅Π½ΡΡŽΡ‰Π°Ρ Ρ†Π²Π΅Ρ‚ ΠΈΠ»ΠΈ рисунок, Π²ΠΎΠ·Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚Ρƒ Π·Π°Π»ΠΈΠ²ΠΊΠΈ

Tab

Β Π¦Π²Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ табуляции

Β ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠΊ Π½Π° оси значСния Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Chart1.

Charts(«Chart1»).Axes(xlValue).TickLabels.Font.Color =Β  _

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  RGB(0, 255, 0)

Β 

ColorIndex

УстанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Β Ρ†Π²Π΅Ρ‚Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ColorIndex

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π¦Π²Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ ΠΊΠ°ΠΊ индСксноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Π΅, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… константы XlColorIndex:

Β·Β Β Β Β Β Β  xlColorIndexAutomatic =-4105 – автоматичСскиС Ρ†Π²Π΅Ρ‚Π°

Β·Β Β Β Β Β Β  xlColorIndexNone = -4142 – Π½Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ΠΎΠ²

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Π³Π»Π°Π²Π½Ρ‹Ρ… сСток для оси значСния Π² Chart1.

With Charts(«Chart1»).Axes(xlValue)Β Β 

Β  If .HasMajorGridlines ThenΒ 

Β Β Β Β Β Β  .MajorGridlines.Border.ColorIndex = 5Β 

Β  ‘ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ† ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° синий

End If

End With

LineStyle

ВозвращСния  Ρ‚ΠΈΠΏ Π»ΠΈΠ½ΠΈΠΈ для Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. LineStyle

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹:

xlGray25, xlGray50, xlGray75, xlAutomatic ΠΈΠ»ΠΈ

  • xlContinuous = 1 — НСпрСрывная строка.
  • xlDash = -4115 — ΠŸΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½Π°Ρ линия.
  • xlDashDot = 4 -Π§Π΅Ρ€Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ.
  • xlDashDotDot = 5 — Π§Π΅Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° слСдовала двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.
  • xlDot = -4118 — ΠŸΡƒΠ½ΠΊΡ‚ΠΈΡ€.
  • xlDouble = -4119 -Двойная строка.
  • xlLineStyleNone = -4142 -Никакая строка.
  • xlSlantDashDot = 13 -НаклонныС Ρ‡Π΅Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

xlDouble ΠΈ xlSlantDashDot Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π²ΠΎΠΊΡ€ΡƒΠ³ области Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ графичСской области Chart1

With Charts(«Chart1»)

Β Β Β  .ChartArea.Border.LineStyle = xlDashDot

Β Β Β  With .PlotArea.Border

Β Β Β Β Β Β Β  .LineStyle = xlDashDotDot

Β Β Β Β Β Β Β  .Weight = xlThick

Β Β Β  End With

End With

ParentΠ’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Волько для чтСния.
ThemeColor

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Β Ρ†Π²Π΅Ρ‚ Ρ‚Π΅ΠΌΡ‹ Π² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмС, которая связана с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² вСрсии: Excel 2007

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.ThemeColor

TintAndShade

УстанавливаСт Π·Π°Ρ‚Π΅ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² вСрсии: Excel 2007

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. TintAndShade

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти число ΠΎΡ‚-1 (самый Ρ‚Π΅ΠΌΠ½Ρ‹ΠΉ) ΠΊ 1 (самый свСтлый) для свойства TintAndShade. ΠΡƒΠ»ΡŒ (0) Π½Π΅ΠΉΡ‚Ρ€Π°Π»Π΅Π½.

Установка значСния мСньшС Ρ‡Π΅ΠΌ-1 ΠΈΠ»ΠΈ большС Ρ‡Π΅ΠΌ 1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС » The specified value is out of range» (ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°).

Weight

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ XlBorderWeight Β , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляСт вСс (Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρƒ) Π³Ρ€Π°Π½ΠΈΡ†Ρ‹.

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Weight

  • xlHairline = 1 — Линия наимСньшСй Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹ (самая тонкая Π³Ρ€Π°Π½ΠΈΡ†Π°).
  • xlMedium = -4138 – БрСдняя Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ.
  • xlThick = 4 – Волстая линия (самая ΡˆΠΈΡ€ΠΎΠΊΠ°Ρ Π³Ρ€Π°Π½ΠΈΡ†Π°).
  • xlThin = 2 – Вонкая линия.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ устанавливаСт вСс Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ для ΠΎΠ²Π°Π»Π° ΠΎΠ΄ΠΈΠ½ Π½Π° Sheet1.

Worksheets(«Sheet1»).Ovals(1).Border.Weight = xlMedium

листов.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ (Excel) | Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Microsoft

  • 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

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

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ лист, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ»ΠΈ лист макроса. Новый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист становится Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.

Бинтаксис

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ . Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ( Π΄ΠΎ , послС , Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ , Π’ΠΈΠΏ )

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Sheets .

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Имя ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ / Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ОписаниС
Π”ΠΎ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ лист, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ добавляСтся Π½ΠΎΠ²Ρ‹ΠΉ лист.
ПослС Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ лист, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ добавляСтся Π½ΠΎΠ²Ρ‹ΠΉ лист.
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ добавляСмых листов. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — количСство Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… листов.
Π’ΠΈΠΏ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Π—Π°Π΄Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ листа. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… констант XlSheetType : xlWorksheet , xlChart , xlExcel4MacroSheet ΠΈΠ»ΠΈ xlExcel4IntlMacroSheet .Если Π²Ρ‹ вставляСтС лист Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ шаблона, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — xlWorksheet .

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΉ лист, Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ»ΠΈ макрос.

ЗамСчания

Если Π”ΠΎ ΠΈ ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹, Π½ΠΎΠ²Ρ‹ΠΉ лист вставляСтся ΠΏΠ΅Ρ€Π΅Π΄ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ листом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΎΠ²Ρ‹ΠΉ лист вставляСтся ΠΏΠ΅Ρ€Π΅Π΄ послСдним листом Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅.

  ActiveWorkbook.Sheets.Add Before: = ActiveWorkbook.Worksheets (ActiveWorkbook.Worksheets.Count)
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист вставляСтся послС послСднСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Π² Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΈ записываСтся возвращСнная ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

  Π Π°Π·ΠΌΠ΅Ρ€ листа ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ лист = ActiveWorkbook.Sheets.Add (ПослС: = ActiveWorkbook.Worksheets (ActiveWorkbook.Worksheets.Count))
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ 32-разрядном Excel 2010 этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 255 листов Π·Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎΠ± Office VBA ΠΈΠ»ΠΈ этой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ? Π‘ΠΌ. Π Π°Π·Π΄Π΅Π» ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ Office VBA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π².

Как Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Excel с VBA

Π£Ρ‡Π΅Π±Π½ΠΈΠΊ прСдоставляСт Π½Π°Π±ΠΎΡ€ макросов для дублирования листов Π² Excel: ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС значСния ячСйки, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… листов, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ листа Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ», Π½Π΅ открывая Π΅Π³ΠΎ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ листы Π² Excel Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ довольно быстро ΠΈ просто … Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всСго ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Ρ€Π°Π·Π°. ΠœΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… листов ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. На этой страницС Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… макросов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ этой Π·Π°Π΄Π°Ρ‡ΠΈ.

Excel VBA для копирования листа Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ однострочный макрос Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ подписка CopySheetToNewWorkbook ()
activeSheet.ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
ΠšΠΎΠ½Π΅Ρ† подписки
 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… листов Π² Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько листов ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ всС ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ листы ΠΈ запуститС этот макрос:

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ подписка CopySelectedSheets ()
ActiveWindow.SelectedSheets.Copy
ΠšΠΎΠ½Π΅Ρ† подписки
 

Excel VBA для копирования листа Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡƒΠ΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скопированный лист, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… макросов.

Копия листа Π² Π½Π°Ρ‡Π°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ

Π­Ρ‚ΠΎΡ‚ макрос ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист ΠΏΠ΅Ρ€Π΅Π΄ всСми ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ листами Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Book1 Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ», Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Β«Book1.xlsxΒ» Π½Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Public Sub CopySheetToBeginningAnotherWorkbook ()
activeSheet.Copy Π”ΠΎ: = Книги ("Book1.xlsx"). Π’Π°Π±Π»ΠΈΡ†Ρ‹ (1)
ΠšΠΎΠ½Π΅Ρ† подписки
 

Копия листа Π² ΠΊΠΎΠ½Π΅Ρ† Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ

Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ копию Π² ΠΊΠΎΠ½Π΅Ρ† Book1 . ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Β«Book1.xlsxΒ» Π½Π° имя Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Public Sub CopySheetToEndAnotherWorkbook ()
activeSheet.Copy After: = Workbooks ("Book1.xlsx"). Sheets (Workbooks ("Book1.xlsx"). Worksheets.Count)
ΠšΠΎΠ½Π΅Ρ† подписки
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ макросов цСлСвая ΠΊΠ½ΠΈΠ³Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сохранСна Π½Π° ТСстком дискС ΠΈΠ»ΠΈ Π² сСти.

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ лист Π² Π»ΡŽΠ±ΡƒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ UserForm (с ΠΈΠΌΠ΅Π½Π΅ΠΌ UserForm1 ) с элСмСнтом управлСния ListBox ( с ΠΈΠΌΠ΅Π½Π΅ΠΌ ListBox1 ) ΠΈ двумя ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ:

Π—Π°Ρ‚Π΅ΠΌ Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ΄Π°:

Public SelectedWorkbook ΠΊΠ°ΠΊ строка

Частная подписка UserForm_Initialize ()
SelectedWorkbook = ""
ListBox1.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ
Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ wbk Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ListBox1.AddItem (wbk.Name)
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ
ΠšΠΎΠ½Π΅Ρ† подписки

Частная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° CommandButton1_Click ()
Если ListBox1.ListIndex> -1 Π’ΠΎΠ³Π΄Π°
SelectedWorkbook = ListBox1.List (ListBox1.ListIndex)
ΠšΠΎΠ½Π΅Ρ†, Ссли
Me.Hide
ΠšΠΎΠ½Π΅Ρ† подписки

Частная ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° CommandButton2_Click ()
SelectedWorkbook = ""
Me.Hide
ΠšΠΎΠ½Π΅Ρ† подписки
 

Установив UserForm, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… макросов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ.

Копия листа Π² Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ :

Public Sub CopySheetToBeginningAnotherWorkbook ()
Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ UserForm1
UserForm1.Show

Если (UserForm1.SelectedWorkbook <> "") Π’ΠΎ
activeSheet.Copy Before: = Workbooks (UserForm1.SelectedWorkbook) .Sheets (1)
ΠšΠΎΠ½Π΅Ρ†, Ссли

Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ UserForm1
ΠšΠΎΠ½Π΅Ρ† подписки
 

Копия листа Π² ΠΊΠΎΠ½Π΅Ρ† Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ :

Public Sub CopySheetToEndAnotherWorkbook ()
Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ UserForm1
UserForm1.Π¨ΠΎΡƒ

Если (UserForm1.SelectedWorkbook <> "") Π’ΠΎ
        activeSheet.Copy ПослС: = Книги (_
        UserForm1.SelectedWorkbook) .Sheets (_
        Книги (UserForm1.SelectedWorkbook). _
        Worksheets.Count)
ΠšΠΎΠ½Π΅Ρ†, Ссли

Π’Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ UserForm1
ΠšΠΎΠ½Π΅Ρ† подписки
 

ΠŸΡ€ΠΈ запускС Π² Excel макрос ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ список всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΠ½ΠΈΠ³. Π’Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ ОК:

ΠœΠ°ΠΊΡ€ΠΎΡ Excel для копирования листа ΠΈ пСрСимСнования

Когда Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ лист Π² Excel, Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ΅ присваиваСтся имя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Sheet1 (2) .Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ макросы избавят вас ΠΎΡ‚ нСобходимости ΠΌΠ΅Π½ΡΡ‚ΡŒ имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист, Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ копию «ВСстовый лист» (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ) ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ скопированный лист Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°Ρ подписка CopySheetAndRenamePredefined ()
activeSheet.Copy ПослС: = Листы (Sheets.Count)
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
activeSheet.Name = "ВСстовый лист"
ΠšΠΎΠ½Π΅Ρ† подписки
 

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя для скопированного листа , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΊΠΎΠ΄:

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ подписка CopySheetAndRename ()
Dim newName As String

ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
newName = InputBox (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя для скопированного листа»)

Если newName <> "" Π’ΠΎΠ³Π΄Π°
activeSheet.ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послС: = Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы (Sheets.Count)
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
activeSheet.Name = newName
ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Π΅Ρ† подписки
 

ПослС запуска макрос ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ имя ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ OK:

ΠœΠ°ΠΊΡ€ΠΎΡ Excel для копирования листа ΠΈ пСрСимСнования Π½Π° основС значСния ячСйки

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ копию ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ячСйки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ столбца. Для этого Π²Ρ‹ просто Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄ ΠΈ автоматичСски Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ячСйки Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°.Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, копия Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² ΠΊΠΎΠ½Π΅Ρ† Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Бамая слоТная Ρ‡Π°ΡΡ‚ΡŒ — ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ всСгда Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ячСйку ΠΏΠ΅Ρ€Π΅Π΄ запуском макроса πŸ™‚

ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°Ρ подписка CopySheetAndRenameByCell ()
Dim newName As String
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
newName = InputBox (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя скопированного Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа», Β«ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист», ActiveCell.Value)

Если newName <> "" Π’ΠΎΠ³Π΄Π°
activeSheet.ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послС: = Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы (Sheets.Count)
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
activeSheet.Name = newName
ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Π΅Ρ† подписки
 

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ адрСс ячСйки , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½Π° копия, ячСйка A1 Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π·Π²Π°Ρ‚ΡŒ скопированный лист Π½Π° основС Π΄Ρ€ΡƒΠ³ΠΎΠΉ ячСйки, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ A1 ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ссылкой Π½Π° ячСйку.

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ подписка CopySheetAndRenameByCell2 ()
Dim wks ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист
Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ wks = activeSheet
activeSheet.ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послС: = Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы (Sheets.Count)
Если wks.Range ("A1"). Value <> "" Π’ΠΎΠ³Π΄Π°
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
activeSheet.Name = wks.Range ("A1"). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ΠšΠΎΠ½Π΅Ρ†, Ссли

wks.Activate
ΠšΠΎΠ½Π΅Ρ† подписки
 

ΠœΠ°ΠΊΡ€ΠΎΡ для копирования листа Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ

Π­Ρ‚ΠΎΡ‚ макрос ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² ΠΊΠΎΠ½Π΅Ρ† Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Имя Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠ΄Π΅ — макрос ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ стандартноС ΠΎΠΊΠ½ΠΎ Windows Explorer ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой Ρ„Π°ΠΉΠ» назначСния:

ПослС Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π° ΠΈ наТатия ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ макрос скопируСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист ΠΈ автоматичСски Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°Ρ подписка CopySheetToClosedWorkbook ()
Dim fileName
Dim closedBook As Workbook
Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ листа ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа

fileName = Application.GetOpenFilename ("Π€Π°ΠΉΠ»Ρ‹ Excel (* .xlsx), * .xlsx")

Если fileName <> False, Ρ‚ΠΎ
Application.ScreenUpdating = False

УстановитС currentSheet = Application.activeSheet
УстановитС closedBook = Workbooks.Open (fileName).
currentSheet.Copy ПослС: = closedBook.Sheets (closedBook.Worksheets.Count)
закрытая ΠΊΠ½ΠΈΠ³Π°.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ (True)

Application.ScreenUpdating = True
ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Π΅Ρ† подписки
 

Excel VBA для копирования листа ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π±Π΅Π· открытия

Π­Ρ‚ΠΎΡ‚ макрос позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Excel, Π½Π΅ открывая Π΅Π³ΠΎ. Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ лист Π±ΡƒΠ΄Π΅Ρ‚ вставлСн Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Волько Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π·Π°ΠΌΠ΅Π½ Π² ΠΊΠΎΠ΄Π΅:

  • C: \ Users \ XXX \ Documents \ Target_Book.xlsx слСдуСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° фактичСский ΠΏΡƒΡ‚ΡŒ ΠΈ имя ΠΊΠ½ΠΈΠ³ΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист.
  • Sheet1 слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° имя листа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
ΠžΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Π°Ρ подписка CopySheetFromClosedWorkbook ()
Вусклый источник ΠΊΠ½ΠΈΠ³ΠΈ ΠΊΠ°ΠΊ ΠΊΠ½ΠΈΠ³ΠΈ
Application.ScreenUpdating = False
УстановитС sourceBook = Workbooks.Open ("C: \ Users \ XXX \ Documents \ Target_Book.xlsx")
sourceBook.Sheets ("Sheet1"). ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ послС: = ThisWorkbook.Sheets (ThisWorkbook.Sheets.Count)
sourceBook.Close
Application.ScreenUpdating = True
ΠšΠΎΠ½Π΅Ρ† подписки
 

Excel VBA для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ дублирования листа

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ лист Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΡƒΠ» Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ….Π­Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ макроса.

Public Sub DuplicateSheetMultipleTimes ()
Dim n ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
ΠŸΡ€ΠΈ ошибкС Π’ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π”Π°Π»Π΅Π΅
n = InputBox («Бколько ΠΊΠΎΠΏΠΈΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ листа Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?Β»)

Если n> = 1, Ρ‚ΠΎ
Для numtimes = ΠΎΡ‚ 1 Π΄ΠΎ n
activeSheet.Copy ПослС: = ActiveWorkbook.Sheets (Worksheets.Count)
ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ
ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Π΅Ρ† подписки
 

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ исходный лист, запуститС макрос, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, сколько ΠΊΠΎΠΏΠΈΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ листа Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ОК :

Как Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ листы Π² Excel с VBA

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Excel с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… макросов, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ VBA Π² свою ΠΊΠ½ΠΈΠ³Ρƒ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос ΠΈΠ· нашСй ΡƒΡ‡Π΅Π±Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ макрос Π² ΠΊΠ½ΠΈΠ³Ρƒ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΊΠ½ΠΈΠ³Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
  2. НаТмитС Alt + F11, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic.
  3. На Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ThisWorkbook , Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ > ΠœΠΎΠ΄ΡƒΠ»ΡŒ .
  4. Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ΄Π°.
  5. НаТмитС F5, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Как Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ VBA Π² Excel.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос ΠΈΠ· нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠ½ΠΈΠ³ΠΈ

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ наш ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΊΠ½ΠΈΠ³ΠΈ Π² Duplicate Excel Sheets ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°.

ΠžΠ±Ρ€Π°Π·Π΅Ρ† ΠΊΠ½ΠΈΠ³ΠΈ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ макросы:

CopySheetToNewWorkbook — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

CopySelectedSheets — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… листов Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

CopySheetToBeginningAnotherWorkbook — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² Π½Π°Ρ‡Π°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

CopySheetToEndAnotherWorkbook — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист Π² ΠΊΠΎΠ½Π΅Ρ† Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Excel.

CopySheetAndRename — Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ лист, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ копию послС всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… листов Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅.

CopySheetAndRenamePredefined — Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист, Π΄Π°Π΅Ρ‚ ТСстко Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ имя ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ.

CopySheetAndRenameByCell — Π΄Π΅Π»Π°Π΅Ρ‚ копию Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ листа ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅ Π½Π° основС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ значСния ячСйки.

CopySheetAndRenameByCell2 — ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ лист ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π° основС ТСстко Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ адрСса ячСйки.

CopySheetToClosedWorkbook — позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

CopySheetFromClosedWorkbook — позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Excel, Π½Π΅ открывая Π΅Π³ΠΎ.

DuplicateSheetMultipleTimes — позволяСт Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Excel нСсколько Ρ€Π°Π·.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ макрос Π² Excel, просто сдСлайтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ содСрТимоС, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ.
  2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ листу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.
  3. На листС Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + F8, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ макрос ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ .

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Π² Excel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ VBA. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΡŽ вас Π·Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ надСюсь ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ вас Π² нашСм Π±Π»ΠΎΠ³Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅!

Вас Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² листов Π² VBA (Microsoft Excel)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ написана для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий Microsoft Excel: 97, 2000, 2002 ΠΈ 2003.Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ позднюю Π²Π΅Ρ€ΡΠΈΡŽ (Excel 2007 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ позднюю), , этот совСт ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ этого совСта, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий Excel, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ здСсь: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² листов Π² VBA.

Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ макросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ листы Π² ΠΊΠ½ΠΈΠ³Π΅, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ листов Π΅ΡΡ‚ΡŒ Π² ΠΊΠ½ΠΈΠ³Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ особСнно ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ VBA Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ листов.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ смоТСтС Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ листов находятся Π² ΠΊΠ½ΠΈΠ³Π΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Excel Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΈΠ³Ρƒ. Excel ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ листов, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Worksheets состоит ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² листа, Π° коллСкция Charts — ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² листа Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ листа Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ — это Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ вСсь Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист; ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, встроСнныС Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ листы ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ листов Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Sheets. Π˜Ρ‚Π°ΠΊ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ располоТСны листы, ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, пройдя Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Sheets. Когда Π²Ρ‹ это сдСлаСтС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ свойство Type ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ это Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Excel опрСдСляСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Sheets:

  • xlWorksheet. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист.
  • xlChart. Π­Ρ‚ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°.
  • xlExcel4MacroSheet. Π­Ρ‚ΠΎ лист макросов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Excel 4.0.
  • xlExcel4IntlMacroSheet. Π­Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ лист макросов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Excel 4.0.

Π£ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ достаточно Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° список Ρ‚ΠΈΠΏΠΎΠ² листов. Однако интСрСсно, Ρ‡Ρ‚ΠΎ Excel Π½Π΅ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ свойства Type.ВмСсто этого, Ссли Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ свойство Type для Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠ½ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ xlExcel4MacroSheet. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для любого макроса.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, сравнив имя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Sheets с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Charts. Если имя Π΅ΡΡ‚ΡŒ Π² ΠΎΠ±Π΅ΠΈΡ… коллСкциях, ΠΌΠΎΠΆΠ½ΠΎ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ лист являСтся Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ. Если Π΅Π³ΠΎ Π½Π΅Ρ‚ Π² ΠΎΠ±ΠΎΠΈΡ…, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ дальшС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, относится Π»ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ макрос SheetType слСдуСт Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ процСссу:

Sub SheetType ()
    Dim iCount ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim iType ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число
    Dim sTemp As String
    Dim oChart ΠΊΠ°ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°
    Dim bFound as Boolean

    sTemp = ""
    Для iCount = 1 Π² листах.Π‘Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ
        iType = Π’Π°Π±Π»ΠΈΡ†Ρ‹ (iCount) .Type
        sTemp = sTemp & Sheets (iCount) .Name & "is a"

        bFound = Π›ΠΎΠΆΡŒ
        Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ…
            Если oChart.Name = Sheets (iCount) .Name, Ρ‚ΠΎ
                bFound = True
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ oChart

        Если bFound Then
            sTemp = sTemp & «лист Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹Β».
        Π•Ρ‰Π΅
            Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Case iType
                Π”Π΅Π»ΠΎ xlWorksheet
                    sTemp = sTemp & "Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист."
                Π”Π΅Π»ΠΎ xlChart
                    sTemp = sTemp & «лист Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹Β».
                Π‘Π»ΡƒΡ‡Π°ΠΉ xlExcel4MacroSheet
                    sTemp = sTemp & "Лист макросов Excel 4."
                Π‘Π»ΡƒΡ‡Π°ΠΉ xlExcel4IntlMacroSheet
                    sTemp = sTemp & "n ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ лист макросов Excel 4"
                Case Else
                    sTemp = sTemp & "НСизвСстный Ρ‚ΠΈΠΏ листа."
            ΠšΠΎΠ½Π΅Ρ† Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ
        ΠšΠΎΠ½Π΅Ρ†, Ссли
        sTemp = sTemp & vbCrLf
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ iCount
    ΠΠΠ‘Π’Π ΠžΠ™ΠšΠ MsgBox
ΠšΠΎΠ½Π΅Ρ† подписки
 

Когда Π²Ρ‹ запускаСтС макрос, Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ сообщСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отобраТаСтся имя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ листа Π² вашСй ΠΊΠ½ΠΈΠ³Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ листа.

ExcelTips — ваш источник экономичного обучСния Microsoft Excel.
Π­Ρ‚ΠΎΡ‚ совСт (2538) относится ΠΊ Microsoft Excel 97, 2000, 2002 ΠΈ 2003. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ этого совСта для Π»Π΅Π½Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ интСрфСйса Excel (Excel 2007 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсий) здСсь: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² листов Π² VBA .

Автор Биография

АллСн Вятт

АллСн Вятт — всСмирно ΠΏΡ€ΠΈΠ·Π½Π°Π½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΡ€, Π°Π²Ρ‚ΠΎΡ€ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 50 Π½Π°ΡƒΡ‡Π½ΠΎ-популярных ΠΊΠ½ΠΈΠ³ ΠΈ многочислСнных ΠΆΡƒΡ€Π½Π°Π»ΡŒΠ½Ρ‹Ρ… статСй.Он являСтся ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠΌ Sharon Parq Associates, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ ΠΈ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ услуги. Π£Π·Π½Π°Ρ‚ΡŒ большС ΠΎ Allen …

ИзмСнСниС ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ страницы

ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ страницы опрСдСляСт способ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° страницС. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ страницСй …

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

Найти ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² столбцС ΠΈΠ»ΠΈ строкС

ВрСбуСтся поиск ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅? Word позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ поиск Ρ†Π΅Π»Ρ‹ΠΌ столбцом ΠΈΠ»ΠΈ строкой, ΠΊΠ°ΠΊ…

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

ИзмСнСниС ΠΌΠ΅Ρ‚ΠΎΠΊ ΡˆΠΊΠ°Π»Ρ‹ осСй

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΈ сТато. ИзмСнСниС ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для обозначСния …

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

Excel VBA Workbook ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² | ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ | Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Workbook ΠΈ Worksheet ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Excel VBA .

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π’ Excel VBA ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΈ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Ρ‚. Π”. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Excel VBA ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π·Π²ΡƒΡ‡ΠΈΡ‚ довольно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ, Π½ΠΎ ΠΌΡ‹ проясним это.

ΠœΠ°Ρ‚ΡŒ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — это сам Excel. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Application. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ прилоТСния содСрТит Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Workbook (Ρ„Π°ΠΉΠ» Excel). Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любая созданная Π²Π°ΠΌΠΈ рабочая ΠΊΠ½ΠΈΠ³Π°.ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Workbook содСрТит Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet содСрТит Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Range.

Π’ Π³Π»Π°Π²Π΅ Β«Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ макроса» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ. ΠœΡ‹ использовали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΊΠΎΠ΄Π°:

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ («A1»). Value = «Hello»

, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρƒ:

Application.Workbooks («create-a-macro»). Worksheets (1) .Range («A1»). Value = «Hello»

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ соСдинСны Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ строку ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ помСстили Π½Π°ΡˆΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² create-a-macro.xlsm Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ листС. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… листах, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet. Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС.

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ листы ΠΈΠΌΠ΅ΡŽΡ‚ мноТСствСнноС число. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Workbooks содСрТит всС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Workbook.ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Worksheets содСрТит всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Worksheet Π² ΠΊΠ½ΠΈΠ³Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‡Π»Π΅Π½ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Worksheet, трСмя способами.

1. ИспользованиС ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа.

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы («ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ»). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ («A1»). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = «ΠŸΡ€ΠΈΠ²Π΅Ρ‚»

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ порядковый Π½ΠΎΠΌΠ΅Ρ€ (1 — это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист, начиная слСва).

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы (1) .Range («A1»). Value = «Hello»

3.ИспользованиС CodeName.

Sheet1.Range («A1»). Value = «Hello»

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ CodeName Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Visual Basic. Π’ Project Explorer ΠΏΠ΅Ρ€Π²ΠΎΠ΅ имя — это CodeName. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ имя — это имя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа (ΠŸΡ€ΠΎΠ΄Π°ΠΆΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. CodeName остаСтся ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ, Ссли Π²Ρ‹ измСняСтС имя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа ΠΈΠ»ΠΈ порядок своих Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… листов, поэтому это самый бСзопасный способ ссылки Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист. НаТмитС Β«ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Β», «Окно свойств», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа.Π•ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ нСдостаток: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CodeName, Ссли ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° лист Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅.

Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Workbooks and Worksheets. Бвойства — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ (ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ дСйствиС с ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ).

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° лист ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строки ΠΊΠΎΠ΄Π°:

1.ΠœΠ΅Ρ‚ΠΎΠ΄ Add ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Workbooks создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ.

Π Π°Π±ΠΎΡ‡ΠΈΠ΅ Ρ‚Π΅Ρ‚Ρ€Π°Π΄ΠΈ. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΠ΅Ρ‚ΠΎΠ΄ Add ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Worksheets создаСт Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист.

2. Бвойство Count ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Worksheets подсчитываСт количСство листов Π² ΠΊΠ½ΠΈΠ³Π΅.

MsgBox Worksheets.Count

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° листС:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Бвойство Count ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Workbooks подсчитываСт количСство Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠ½ΠΈΠ³.

Найти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, листС ΠΈΠ»ΠΈ листах с VBA

НайдитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, листС ΠΈΠ»ΠΈ листах с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
VBA

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π² стандартный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ своСй ΠΊΠ½ΠΈΠ³ΠΈ, Ссли Π²Ρ‹ просто
Π½Π°Ρ‡Π°Π» с VBA см. эту страницу.
ΠšΡƒΠ΄Π° Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ
ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π½Π°Ρ…ΠΎΠΆΡƒ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅

Найти — ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Excel. ВмСстС с
Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ смСщСния Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ячСйки Π²ΠΎΠΊΡ€ΡƒΠ³ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ячСйки. НиТС
это нСсколько основных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСм собствСнном ΠΊΠΎΠ΄Π΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ «ΠΠ°ΠΉΡ‚ΠΈ» для Π²Ρ‹Π±ΠΎΡ€Π° ячСйки

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… выполняСтся поиск Π² столбцС A листа с ΠΈΠΌΠ΅Π½Π΅ΠΌ «Sheet1» для
Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поля Π²Π²ΠΎΠ΄Π°. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ имя листа ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΊΠΎΠ΄Π΅ Π½Π° своС
лист / Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½.

Π‘ΠΎΠ²Π΅Ρ‚ : Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π½Π°
строка ΠΈΠ»ΠΈ ссылка Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ​​ячСйку
FindString = «SearchWord»
ΠΈΠ»ΠΈ
FindString
= Листы («Π›ΠΈΡΡ‚1»). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ («D1»). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ
пСрвая ячСйка Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ InputBox.

 ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Find_First ()
    Π Π°Π·ΠΌΡ‹Ρ‚ΡŒ FindString ΠΊΠ°ΠΊ строку
    Dim Rng As Range
    FindString = InputBox (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для поиска»)
    Если Trim (FindString) <> "" Π’ΠΎΠ³Π΄Π°
        Π‘ листами ("Sheet1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A: A")
            Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .Find (What: = FindString, _
                            ПослС: =. Cells (.Cells.Count), _
                            LookIn: = xlValues, _
                            LookAt: = xlWhole, _
                            SearchOrder: = xlByRows, _
                            SearchDirection: = xlNext, _
                            MatchCase: = False)
            Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                Заявка.Goto Rng, True
            Π•Ρ‰Π΅
                MsgBox "НичСго Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        ΠšΠΎΠ½Π΅Ρ† с
    ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

Если Ρƒ вас Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ вхоТдСния значСния, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ
послСднСС появлСниС.

 Sub Find_Last ()
    Π Π°Π·ΠΌΡ‹Ρ‚ΡŒ FindString ΠΊΠ°ΠΊ строку
    Dim Rng As Range
    FindString = InputBox (Β«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для поиска»)
    Если Trim (FindString) <> "" Π’ΠΎΠ³Π΄Π°
        Π‘ листами ("Sheet1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A: A")
            Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .Find (What: = FindString, _
                            ПослС: =.Π―Ρ‡Π΅ΠΉΠΊΠΈ (1), _
                            LookIn: = xlValues, _
                            LookAt: = xlWhole, _
                            SearchOrder: = xlByRows, _
                            SearchDirection: = xlPrevious, _
                            MatchCase: = False)
            Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                Application.Goto Rng, True
            Π•Ρ‰Π΅
                MsgBox "НичСго Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        ΠšΠΎΠ½Π΅Ρ† с
    ΠšΠΎΠ½Π΅Ρ†, Ссли
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π°Ρ‚Π° Π² столбцС A, Ρ‚ΠΎ Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π° ячСйка
с сСгодняшнСй Π΄Π°Ρ‚ΠΎΠΉ.ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если ваши Π΄Π°Ρ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°ΠΌΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹
Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ xlFormulas Π½Π° xlValues ​​в ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅. Если ваши Π΄Π°Ρ‚Ρ‹
values ​​xlValues ​​нС всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Π΄Π°Ρ‚Ρ‹.

 Sub Find_Todays_Date ()
    Π—Π°Ρ‚Π΅Π½ΡΡ‚ΡŒ FindString ΠΊΠ°ΠΊ Π΄Π°Ρ‚Ρƒ
    Dim Rng As Range
    FindString = CLng (Π”Π°Ρ‚Π°)
    Π‘ листами ("Sheet1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A: A")
        Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .Find (What: = FindString, _
                        ПослС: =. Cells (.Cells.Count), _
                        LookIn: = xlFormulas, _
                        LookAt: = xlWhole, _
                        SearchOrder: = xlByRows, _
                        SearchDirection: = xlNext, _
                        MatchCase: = False)
        Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
            Заявка.Goto Rng, True
        Π•Ρ‰Π΅
            MsgBox "НичСго Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ"
        ΠšΠΎΠ½Π΅Ρ†, Ссли
    ΠšΠΎΠ½Π΅Ρ† с
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ячСйки с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² столбцС A столбца B

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ выполняСтся поиск Π² Π’Π°Π±Π»ΠΈΡ†Π°Ρ… («Π›ΠΈΡΡ‚1») Π² столбцС A для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйки с
Β«ronΒ» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ячСйку Π² столбцС справа.
ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массив MyArr .

 Sub Mark_cells_in_column ()
    Dim FirstAddress As String
    Dim MyArr ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim Rng As Range
    Вусклый я ΠΏΠΎΠΊΠ°

    Π‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
        .ScreenUpdating = False
        .EnableEvents = Π›ΠΎΠΆΡŒ
    ΠšΠΎΠ½Π΅Ρ† с

    'Поиск значСния ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
    'Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ этот Array ("ron", "dave")
    MyArr = массив ("Ρ€ΠΎΠ½")

    'Поиск Π² столбцС ΠΈΠ»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
    Π‘ листами ("Sheet1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A: A")

        'очиститС ячСйки Π² столбцС справа
        .Offset (0, 1) .ClearContents

        Для I = LBound (MyArr) To UBound (MyArr)

            'Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π°ΡΡ‚ΡŒ rng.value, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlPart
            'Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ LookIn: = xlValues, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с
            'ячСйка Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, которая вычисляСтся ΠΊΠ°ΠΊ "ron"

            УстановитС Rng =.НайдитС (What: = MyArr (I), _
                            ПослС: =. Cells (.Cells.Count), _
                            LookIn: = xlFormulas, _
                            LookAt: = xlWhole, _
                            SearchOrder: = xlByRows, _
                            SearchDirection: = xlNext, _
                            MatchCase: = False)

            Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                FirstAddress = Rng.Address
                Π”Π΅Π»Π°Ρ‚ΡŒ
                    'ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ячСйку Π² столбцС справа, Ссли "Π ΠΎΠ½" Π½Π°ΠΉΠ΄Π΅Π½
                    Rng.Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (0, 1) .Value = "X"
                    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .FindNext (Rng)
                Π¦ΠΈΠΊΠ» ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π²ΠΎΠ½ΠΈΡ‚ - это Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ Rng.Address <> FirstAddress
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        Π”Π°Π»Π΅Π΅ я
    ΠšΠΎΠ½Π΅Ρ† с

    Π‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
        .ScreenUpdating = Π˜ΡΡ‚ΠΈΠ½Π°
        .EnableEvents = Π˜ΡΡ‚ΠΈΠ½Π°
    ΠšΠΎΠ½Π΅Ρ† с
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

Π¦Π²Π΅Ρ‚ ячССк с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, листС ΠΈΠ»ΠΈ всСх листах

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС ячСйки Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
Листы («Π›ΠΈΡΡ‚1»). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ («B1: D100») с «ron».Π‘ΠΌ. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅
Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ячСйки Π½Π° листС. Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ индСкс Π² этом
ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ всСм ячСйкам с «ron» Ρ†Π²Π΅Ρ‚ 3 (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это красный)

Π‘ΠΌ. этот сайт для всСх 56 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² индСкса
http://dmcritchie.mvps.org/excel/colors.htm

Π‘ΠΎΠ²Π΅Ρ‚ : Для измСнСния Ρ†Π²Π΅Ρ‚Π° ΡˆΡ€ΠΈΡ„Ρ‚Π° см. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹Π΅ строки
ΠΏΠΎΠ΄ макросами.

 Sub Color_cells_In_Range_Or_Sheet ()
    Dim FirstAddress As String
    Dim MySearch ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim myColor ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim Rng As Range
    Вусклый я ΠΏΠΎΠΊΠ°

    'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поисковый индСкс Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ†Π²Π΅Ρ‚
    MySearch = Массив ("Ρ€ΠΎΠ½")
    myColor = Array ("3")

    'Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС
    'MySearch = Array ("Ρ€ΠΎΠ½", "ΠΆΠ΅Π»Π΅", "ΡŽΠ΄ΠΈΡ„ΡŒ")
    'myColor = Array ("3", "6", "10")


    'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ поиска для всСго листа
    'Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π’Π°Π±Π»ΠΈΡ†Ρ‹ ("Лист1").ΠšΠ»Π΅Ρ‚ΠΊΠΈ
    Π‘ листами ("Лист1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("B1: D100")

        'Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π½Π° "Π±Π΅Π· Π·Π°Π»ΠΈΠ²ΠΊΠΈ" Π²ΠΎ всСх ячСйках
        .Interior.ColorIndex = xlColorIndexNone

        Для I = LBound (MySearch) Π² UBound (MySearch)

            'Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π°ΡΡ‚ΡŒ rng.value, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlPart
            'Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ LookIn: = xlValues, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с
            'ячСйка Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, которая вычисляСт MySearch (I)
            УстановитС Rng = .Find (What: = MySearch (I), _
                            ПослС: =. Cells (.Cells.Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ), _
                            LookIn: = xlFormulas, _
                            LookAt: = xlWhole, _
                            SearchOrder: = xlByRows, _
                            SearchDirection: = xlNext, _
                            MatchCase: = False)

            Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                FirstAddress = Rng.Address
                Π”Π΅Π»Π°Ρ‚ΡŒ
                    Rng.Interior.ColorIndex = myColor (I)
                    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .FindNext (Rng)
                Π¦ΠΈΠΊΠ» ΠΏΠΎΠΊΠ° Π½Π΅ Rng Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ Rng.АдрСс <> FirstAddress
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        Π”Π°Π»Π΅Π΅ я
    ΠšΠΎΠ½Π΅Ρ† с
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для всСх листов Π² ΠΊΠ½ΠΈΠ³Π΅

 Sub Color_cells_In_All_Sheets ()
    Dim FirstAddress As String
    Dim MySearch ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim myColor ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim Rng As Range
    Вусклый я ΠΏΠΎΠΊΠ°
    Dim sh As Π Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ поисковый индСкс Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ†Π²Π΅Ρ‚
    MySearch = Массив ("Ρ€ΠΎΠ½")
    myColor = Array ("3")

    'Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС
    'MySearch = Array ("Ρ€ΠΎΠ½", "ΠΆΠ΅Π»Π΅", "ΡŽΠ΄ΠΈΡ„ΡŒ")
    'myColor = Array ("3", "6", "10")

    Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ sh Π² ActiveWorkbook.Π Π°Π±ΠΎΡ‡ΠΈΠ΅ листы

        'Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ поиска для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ листС
        'Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ sh.Range ("B1: D100")
        Б ш.Cells

            'Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π½Π° "Π±Π΅Π· Π·Π°Π»ΠΈΠ²ΠΊΠΈ" Π²ΠΎ всСх ячСйках
            .Interior.ColorIndex = xlColorIndexNone

            Для I = LBound (MySearch) Π² UBound (MySearch)

                'Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π°ΡΡ‚ΡŒ rng.value, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ xlPart
                'Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ LookIn: = xlValues, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с
                'ячСйка Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, которая вычисляСт MySearch (I)
                УстановитС Rng =.Найти (Π§Ρ‚ΠΎ: = MySearch (I), _
                                ПослС: =. Cells (.Cells.Count), _
                                LookIn: = xlFormulas, _
                                LookAt: = xlWhole, _
                                SearchOrder: = xlByRows, _
                                SearchDirection: = xlNext, _
                                MatchCase: = False)

                Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                    FirstAddress = Rng.Address
                    Π”Π΅Π»Π°Ρ‚ΡŒ
                        Rng.Interior.ColorIndex = myColor (I)
                        Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .FindNext (Rng)
                    Π¦ΠΈΠΊΠ» ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π²ΠΎΠ½ΠΈΡ‚ - это Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ Rng.Address <> FirstAddress
                ΠšΠΎΠ½Π΅Ρ†, Ссли
            Π”Π°Π»Π΅Π΅ я
        ΠšΠΎΠ½Π΅Ρ† с
    Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ш
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ ΡˆΡ€ΠΈΡ„Ρ‚Π° вмСсто Ρ†Π²Π΅Ρ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€ΡŒΠ΅Ρ€Π°

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅:

‘Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π½Π° Β«Π±Π΅Π· Π·Π°Π»ΠΈΠ²ΠΊΠΈΒ» Π²ΠΎ всСх ячСйках
.Interior.ColorIndex = xlColorIndexNone

Π‘

‘ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΡˆΡ€ΠΈΡ„Ρ‚ Π² столбцС ΠΊ АКПП
.Font.ColorIndex = 0

ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅:

Rng.Interior.ColorIndex = myColor (I)
с
Rng.Font.ColorIndex = myColor (I)

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ячСйки Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ лист с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Find

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄ΡƒΡ‚ скопированы всС ячСйки с адрСсом элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
Листы («Лист1Β»). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Β«A1: E100Β») Π΄ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ листа Π² вашСй ΠΊΠ½ΠΈΠ³Π΅.
ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ : я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ xlPart Π² ΠΊΠΎΠ΄Π΅ вмСсто xlWhole, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ
каТдая ячСйка с символом @.

 Sub Copy_To_Another_Sheet_1 ()
    Dim FirstAddress As String
    Dim MyArr ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚
    Dim Rng As Range
    Dim Rcount As Long
    Вусклый я ΠΏΠΎΠΊΠ°
    Dim NewSh ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист

    Π‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
        .ScreenUpdating = False
        .EnableEvents = Π›ΠΎΠΆΡŒ
    ΠšΠΎΠ½Π΅Ρ† с

    'Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ поиска
    MyArr = массив ("@")

    'Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² массивС
    'myArr = Array ("@", "www")

    'Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ лист Π² свою ΠΊΠ½ΠΈΠ³Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²
    'Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ лист, ΠΊΠ°ΠΊ этот
    'Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ NewSh = Sheets ("Sheet2")
    УстановитС NewSh = Worksheets.Add

    Π‘ листами ("Лист1"). Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A1: Z100")

        Rcount = 0

        Для I = LBound (MyArr) To UBound (MyArr)

            'Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ LookIn: = xlValues, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с
            'ячСйка Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½ΠΎ "@"
            'ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ xlPart, Π° Π½Π΅ xlWhole
            УстановитС Rng =.НайдитС (What: = MyArr (I), _
                            ПослС: =. Cells (.Cells.Count), _
                            LookIn: = xlFormulas, _
                            LookAt: = xlPart, _
                            SearchOrder: = xlByRows, _
                            SearchDirection: = xlNext, _
                            MatchCase: = False)
            Если Π½Π΅ Rng, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ
                FirstAddress = Rng.Address
                Π”Π΅Π»Π°Ρ‚ΡŒ
                    Rcount = Rcount + 1

                    Rng.Copy NewSh.Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ("A" ΠΈ Rcount)

                    'Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
                    'NewSh.Range ("A" & Rcount) .Value = Rng.Value

                    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Rng = .FindNext (Rng)
                Π¦ΠΈΠΊΠ» ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π²ΠΎΠ½ΠΈΡ‚ - это Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΈ Rng.Address <> FirstAddress
            ΠšΠΎΠ½Π΅Ρ†, Ссли
        Π”Π°Π»Π΅Π΅ я
    ΠšΠΎΠ½Π΅Ρ† с

    Π‘ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
        .ScreenUpdating = Π˜ΡΡ‚ΠΈΠ½Π°
        .EnableEvents = Π˜ΡΡ‚ΠΈΠ½Π°
    ΠšΠΎΠ½Π΅Ρ† с
ΠšΠΎΠ½Ρ†Π΅Π²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π½ΠΈΠΊ 

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ значСния Π½Π° своСм листС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Ctrl + h) ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² VBA.ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄ замСняСт ron
для Дэйва Π½Π° всСм листС. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ xlPart Π½Π° xlWhole, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅
Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ячСйки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ron.

 ActiveSheet.Cells.Replace What: = "ron", Π—Π°ΠΌΠ΅Π½Π°: = "dave", LookAt: = xlPart, _
                              SearchOrder: = xlByRows, MatchCase: = False, _
                              SearchFormat: = False, ReplaceFormat: = False 

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅ сайт Π§ΠΈΠΏΠ° ΠŸΠΈΡ€ΡΠΎΠ½Π° ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅
http://www.cpearson.com/excel/FindAll.aspx

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel

Иногда Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Microsoft Excel Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° нСсколько листов ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всю эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.

Π’ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ячСйки, помСстив ΠΈΡ… всС Π½Π° ΠΎΠ΄ΠΈΠ½ лист.Однако, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, с ΠΊΠ°ΠΊΠΈΠΌ объСмом Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ усилий.

ВмСсто этого ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½Ρ‹Ρ… способах Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ просто ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ объСдинСния листов ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Excel.

Как ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ листы Π² Excel

Excel позволяСт Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ листа Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ листы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ.
  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Главная > Π€ΠΎΡ€ΠΌΠ°Ρ‚ > ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист .
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ΡΡ мСню, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ (новая ΠΊΠ½ΠΈΠ³Π°) .
  4. НаТмитС ОК .

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Excel Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ листы Π² Excel — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΒ» ΠΈΠ»ΠΈ Β«ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист Β».Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ свои ограничСния, Π½ΠΎ ΠΎΠ½ быстрый ΠΈ простой.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ листы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΈΠ³Ρƒ.ΠžΡ‚Ρ‚ΡƒΠ΄Π°:

  1. ΠΠ°ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ΡΡŒ Π² Π”ΠΎΠΌ
  2. НаТмитС Π€ΠΎΡ€ΠΌΠ°Ρ‚
  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ лист

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

Π’ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ (новая ΠΊΠ½ΠΈΠ³Π°) .Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ основная элСктронная Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΡƒΠ΄Π° Π²Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ всС свои ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ листы. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Π”ΠΎ листа , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ порядок располоТСния листов.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ этот процСсс с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ листами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ.Π—Π°Ρ‚Π΅ΠΌ сохранитС Π½ΠΎΠ²Ρ‹ΠΉ составной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Excel Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим руководством.

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Excel Π½Π° ΠΎΠ΄ΠΈΠ½ лист

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π·ΡΡ‚ΡŒ нСсколько Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° ΠΎΠ΄Π½ΠΎΠΌ листС.Π­Ρ‚ΠΎ довольно Π»Π΅Π³ΠΊΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Excel, Ссли Π²Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого процСсса Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… условия.Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Π΅ листы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚, с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустых строк ΠΈΠ»ΠΈ столбцов.

Когда Π²Ρ‹ размСститС свои Π΄Π°Π½Π½Ρ‹Π΅ Π² соотвСтствии с этими спСцификациями, создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист.МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ консолидации Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ листС, Π³Π΄Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ этого ΠΏΡ€ΠΎΡ‰Π΅ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ.

На этом Π½ΠΎΠ²ΠΎΠΌ листС ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Data ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Consolidate .Π’ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘ΡƒΠΌΠΌΠ° , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΠΏΠΎΠ»Π΅ Бсылка , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ своСй элСктронной Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅.Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это для всСх Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ. Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ½ΠΈΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΠ±Π·ΠΎΡ€ , которая соотвСтствуСт Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² вСрсии Excel для Mac.

УстановитС Ρ„Π»Π°ΠΆΠΎΠΊ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ссылки Π½Π° исходныС Π΄Π°Π½Π½Ρ‹Π΅ , Ссли Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… листах ΠΈ ​​хотитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот лист ΠΎΡ‚Ρ€Π°ΠΆΠ°Π» это.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΊΠΈ пСрСносятся, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π»Π°ΠΆΠΊΠΎΠ² Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ Π² , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

НаконСц, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ОК .

К соТалСнию, этот процСсс Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ячСйки с тСкстом Π² Π½ΠΈΡ… — ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с числовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.Π’ этой ситуации Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VBA. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с нашим руководством ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Excel VBA для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Excel с VBA

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ листы ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ½ΠΈΠ³ Π² ΠΎΠ΄Π½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΠ΅, Π»ΡƒΡ‡ΡˆΠΈΠΉ способ — Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ простой макрос VBA.Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ особСнно ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ рСгулярно.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ, находятся Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.Π—Π°Ρ‚Π΅ΠΌ создайтС Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Excel, которая ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ ΠΈΡ… всСх.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Developer ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Visual Basic .Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Вставка> ΠœΠΎΠ΄ΡƒΠ»ΡŒ .

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, взятый ΠΈΠ· руководства ExtendOffice:

  Sub GetSheets () 
Path = "C: \ [ПУВЬ К Π€ΠΠ™Π›ΠΠœ]"
Имя Ρ„Π°ΠΉΠ»Π° = Dir (Path & "*.xls ")
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΏΠΎΠΊΠ° имя Ρ„Π°ΠΉΠ»Π° <>" "
Workbooks.Open Filename: = Path & Filename, ReadOnly: = True
For Every Sheet In ActiveWorkbook.Sheets
Sheet.Copy After: = ThisWorkbook.Sheets (1)
Next Sheet
Workbooks (Filename) .Close
Filename = Dir ()
Loop
End Sub

НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ мСсту хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π—Π°Ρ‚Π΅ΠΌ сохранитС ΠΊΠ½ΠΈΠ³Ρƒ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» XLSM, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ макросы.Π—Π°Ρ‚Π΅ΠΌ запуститС макрос, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΈΠ³Π°, содСрТащая всС листы ΠΈΠ· всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅.

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм Π΄Π°Π½Π½Ρ‹Ρ… Excel

ОбъСдинСниС листов ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Excel ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно слоТным ΠΈ бСспорядочным.Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ»ΠΈΠ²Π°Π΅Ρ‚ свСт Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… ΡƒΡ€ΠΎΠΊΠΎΠ² ΠΎ Microsoft Excel: всСгда Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅.

БлияниС Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… постфактум всСгда Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ нСсколько Π³ΠΎΠ»ΠΎΠ²Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅ΠΉ, особСнно Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с большими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.Когда Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ, Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС возмоТности Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² дальнСйшСм.

Excel ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, принятыС Π½Π° Ρ€Π°Π½Π½Π΅ΠΌ этапС, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎΠ·ΠΆΠ΅.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΠΎ Excel, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° столбца Excel, ΠΊΠ°ΠΊ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Excel, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм руководствС для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎ Microsoft Excel.

Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π¦Π΅Π½Ρ‚Ρ€ΠΎΠΌ обновлСния Windows Π² Windows 10

Π¦Π΅Π½Ρ‚Ρ€ обновлСния Windows постоянно мСняСтся Π² Windows 10.ΠŸΡ€ΠΎΡˆΠ»ΠΈ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исправлСния бСзопасности ΠΈ обновлСния Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΡ ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ упростила ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ процСсс обновлСния Windows, ΠΊΠ°ΠΊ оТидаСтся …

Об Π°Π²Ρ‚ΠΎΡ€Π΅

Sandy Writtenhouse
(ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 462 статСй)

ИмСя ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π±Π°ΠΊΠ°Π»Π°Π²Ρ€Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Бэнди ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π»Π° Π² ИВ-индустрии Π² качСствС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, руководитСля ΠΎΡ‚Π΄Π΅Π»Π° ΠΈ руководитСля PMO.Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½Π° Ρ€Π΅ΡˆΠΈΠ»Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ своСй ΠΌΠ΅Ρ‡Ρ‚Π΅ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ постоянно ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎ тСхнологиях.

Π•Ρ‰Ρ‘ ΠΎΡ‚ Sandy Writtenhouse

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку новостСй

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π°ΡˆΡƒ рассылку тСхничСских совСтов, ΠΎΠ±Π·ΠΎΡ€ΠΎΠ², бСсплатных элСктронных ΠΊΠ½ΠΈΠ³ ΠΈ ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ!

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡˆΠ°Π³β€¦!

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ свой адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π² письмС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π²Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *