Функция открыть лист excel

Make a particular worksheet visible using a macro in Excel.

This is called activating a worksheet and is rather easy to do.

Sections:

Activate Worksheet by Name

Activate Worksheet by Index Number

Notes

Activate Worksheet by Name

Let’s navigate to, activate, the worksheet called «Sheet2».

Worksheets("Sheet2").Activate

08008f3433d614b4eb713fdcde4e01eb.jpg

Worksheets(«Shee2») is how we reference the sheet to which we want to navigate.

Sheet2 is the name of the sheet to which we want to navigate. Make sure to surround it with double quotation marks.

Activate is what actually takes the user to that worksheet.

Putting it all together, we get: Worksheets(«Sheet2»).Activate

It’s as simple as that.

Activate Worksheet by Index Number

This time, let’s navigate to the second worksheet using its index number.

All we do is to replace «Sheet2» from the last example with 2.

Worksheets(2).Activate

3e8969b16e6f131afc29445b0f9a02ac.jpg

2 is the index number of the desired worksheet and Activate is what takes us to the desired worksheet.

This example can be confusing if you are not used to using index numbers, but index numbers are really helpful when you have to do something like loop through all of the worksheets in the workbook.

Notes

Basically, just reference the desired worksheet, however you want, and then type .Activate after it.

You should not use the Activate feature to navigate to a worksheet so that you can get data from it or put data into it. This is very bad Macro/VBA design and it will make your life hell later on. To get data from separate worksheets, read this tutorial: Select Data from Separate Worksheets with Macros VBA in Excel.

This feature should be used when you want the user to end up on a specific worksheet.

Make sure to download the sample file attached to this tutorial so that you can see this macro in Excel and work with it.

Similar Content on TeachExcel

Copy and Paste Data using Macro VBA in Excel

Tutorial: How to copy and paste data using a Macro in Excel. I’ll show you multiple ways to do this,…

Select Data from Separate Worksheets with Macros VBA in Excel

Tutorial: Select data from other worksheets with Macros and VBA without navigating to those workshee…

Get the Last Row using VBA in Excel

Tutorial:
(file used in the video above)
How to find the last row of data using a Macro/VBA in Exce…

Login to a Website using a Macro

: Connect and login to a website using a macro in Excel.
This allows you to open a website a…

Get the Name of a Worksheet in Macros VBA in Excel

Tutorial: How to get the name of a worksheet in Excel using VBA and Macros and also how to store tha…

Guide to Creating Charts with a Macro in Excel

Tutorial: How to add, edit, and position charts in Excel using VBA.
This tutorial covers what to do …

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

1

19.05.2013, 14:36. Показов 8031. Ответов 17


Студворк — интернет-сервис помощи студентам

Помогите очень нужно сделать на форме кнопку по нажатию на которую открывался бы лист excel.
За ранее спасибо



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

19.05.2013, 17:57

2

Лучший ответ Сообщение было отмечено The trick как решение

Решение

На форме кнопка и ссылка на Microsoft Excel X.0 Object Library (В меню Project -> References…, отметить Microsoft Excel X.0 Object Library)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Command1_Click()
 
    Dim xlApp As Excel.Application
    Dim xlWB As Excel.Workbook
    Dim xlWS As Excel.Worksheet
 
    Set xlApp = New Excel.Application
    Set xlWB = xlApp.Workbooks.Add
    Set xlWS = xlWB.Worksheets.Add
    
'Кое-что запишем, епсли надо
    xlWS.Cells(2, 2).Value = "hello"
    xlWS.Cells(1, 3).Value = "World"
    xlApp.Visible = True
' Можно сохранить и выти
'    xlWS.SaveAS "c:mysheet.xls"
'    xlApp.Quit
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
' Free memory
    Set xlWS = Nothing
    Set xlWB = Nothing
    Set xlApp = Nothing
End Sub



1



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

19.05.2013, 18:04

 [ТС]

3

это просто откроет мне мой лист excel и все. так ведь?

Добавлено через 4 минуты
спасибо огромное все работает



0



6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

19.05.2013, 18:05

4

Это создаст новый лист, при желании, запишет туда что то, сохранит этот лист на диске( тоже при желании)
Или просто откроет новый лист.
А что надо, открыть существующий лист?



1



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

19.05.2013, 19:03

 [ТС]

5

да у меня вот какое условие.
я занимаюсь дипломом по грузоперевозкам и вот мне надо что бы я после составления заказа открывал лист excel в котором у меня уже будет мой договор напечатан. также нужно будет в какую-то ячейку вставлять данные клиента. ясно условие?

Добавлено через 54 минуты
я знаю что в этом случае нужно работать с той же библиотекой только с ней я толком не работал я делал импорт и экспорт ячеек и не больше



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

19.05.2013, 19:30

6

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата
Сообщение от n1ko
Посмотреть сообщение

заказа открывал лист excel в котором у меня уже будет мой договор напечатан

Да, то же самое, только берем готовый лист

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Command1_Click()
 
    Dim xl As New Excel.Application
    Dim xlw As Excel.Workbook
 
    ' Открываем файл
    Set xlw = xl.Workbooks.Open("c:myDirbook1.xls")
 
    ' Переименовать  "Sheet1"
    xlw.Sheets("Sheet1").Select
 
    ' Выбираем значение
    MsgBox xlw.Application.Cells(2, 3).Value
 
    ' Закрываем
    xlw.Close False
 
    ' Освобождаем memory
    Set xlw = Nothing
    Set xl = Nothing
 
End Sub



1



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

19.05.2013, 21:23

 [ТС]

7

спасибо это то что я и имел в веду

Добавлено через 39 минут
еще небольшой вопросик а можно ли непосредственно с формы в вижуала печатать на принтере лист ексельчика???
это вообще облегчит роботу
буду благодарен



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

19.05.2013, 21:53

8

Цитата
Сообщение от n1ko
Посмотреть сообщение

печатать на принтере лист ексельчика???

Вставь эту строчку

Visual Basic
1
 xlw.Application.Sheets.PrintOut

После PrintOut есть куча параметров, посмотри, могут пригодиться



1



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

20.05.2013, 10:07

 [ТС]

9

огромная просьба можно какой то самый маленький пример использования этого оператора.
в инете много написано но янашел только описание параметров а примеров толком никаких.



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

20.05.2013, 10:50

10

Цитата
Сообщение от n1ko
Посмотреть сообщение

самый маленький пример использования

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command1_Click()
 
    Dim xl As New Excel.Application
    Dim xlw As Excel.Workbook
 
    ' Открываем файл
    Set xlw = xl.Workbooks.Open("c:mysheet.xls")
    Set xlSH = xlw.Worksheets("Лист2") ' Выбираем нужный лист документа
    xlSH.PrintOut ' Печатаем выбранный лист
    ' Закрываем если надо
    'xlw.Close
    'Выходим из  excel (закроются все рабочие книги)
    'xl.Quit
    Set xlw = Nothing
    Set xl = Nothing
End Sub

Соответственно все параметры по умолчанию. Если что то надо применить, то просто пиши эти параметры после PrintOut через пробел.



1



Dragokas

Эксперт WindowsАвтор FAQ

17993 / 7619 / 890

Регистрация: 25.12.2011

Сообщений: 11,352

Записей в блоге: 17

20.05.2013, 11:01

11

Например,

Visual Basic
1
2
xlw.Worksheets(2).PrintOut From:=1, To:=3, Copies:=4, Preview:=False, _
    ActivePrinter:="Microsoft XPS Document Writer", PrintToFile:=False, Collate:=False, PrToFileName:=vbNullString

Печать 2-го листа от 1 до 3-й страницы с кол-вом копий — 4, без предварительного просмотра,
на принтере Microsoft XPS Document Writer (большинство параметров могут быть опущены).

Справка:
http://msdn.microsoft.com/ru-r… ntout.aspx
http://msdn.microsoft.com/en-u… 38253.aspx
http://msdn.microsoft.com/en-u… e.11).aspx



0



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

20.05.2013, 19:05

 [ТС]

12

я пробовал но ничего не происходит, а если ставить какие-то параметры то вообще ничего не выходит



0



6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

20.05.2013, 19:14

13

Цитата
Сообщение от n1ko
Посмотреть сообщение

я пробовал но ничего не происходит

Покажите ваш код полностью, тогда и скажу конкретно, что не так.
Свой код я проверял, всё нормально печатает.



1



n1ko

3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

20.05.2013, 21:30

 [ТС]

14

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Dim xl As New excel.Application
Dim xlw As excel.Workbook
Private Sub Command1_Click()
If a = 0 Then
With Form2.Data1
    .Recordset.AddNew
    .Recordset("Фамилия") = Text1.Text
    .Recordset("Имя") = Text2.Text
    .Recordset("Отчество") = Text3.Text
    .Recordset("Номер паспорта") = Text4.Text
    .Recordset("Телефон") = Text5.Text
    .Recordset.Update
End With
    Text1.Locked = True
    Text2.Locked = True
    Text3.Locked = True
    Text4.Locked = True
    Text5.Locked = True
Else
    Text1.Locked = True
    Text2.Locked = True
    Text3.Locked = True
    Text4.Locked = True
    Text5.Locked = True
End If
End Sub
 
Private Sub Command2_Click()
    With Form2.Data1.Recordset
    .MoveLast
    .Delete
    .MovePrevious
    End With
    Text1.Locked = False
    Text2.Locked = False
    Text3.Locked = False
    Text4.Locked = False
    Text5.Locked = False
End Sub
 
Private Sub Command3_Click()
    a = 1
    Form4.Hide
    Form2.Show
    Form2.Command1.Visible = True
    Form2.Command2.Visible = False
    Form2.Command4.Visible = False
End Sub
 
Private Sub Command4_Click()
'печать листа
Set xlw = xl.Workbooks.Open("D:DP2013dog.xls")
xlw.Sheets("Лист1").Select
xlw.PrintOut
End Sub
 
Private Sub Command5_Click()
    'oткрытие екселя
    Set xlw = xl.Workbooks.Open("D:DP2013dog.xls")
    'выбор листа
    xlw.Sheets("Лист1").Select
    'запись данных
    xlw.Application.Cells(1, 1).Value = Text1.Text
    xlw.Application.Cells(1, 2).Value = Text2.Text
    xlw.Application.Cells(1, 3).Value = Text3.Text
    'показ екселя
    xl.Visible = True
    Set xlw = Nothing
    Set xl = Nothing
End Sub
 
Private Sub Form_Load()
a = 0
End Sub

Добавлено через 1 минуту
последние 2 кнопки на одной печать а на другой заполнение ячеек

Добавлено через 6 минут
еще что хотел спросить. как мне задать абсолютный путь в поточной папке а не прописывать весь



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

20.05.2013, 22:23

15

На печать — работает.

Абсолютный путь — в зависимости от того, где документ. Если в папке с программой, то используйте

Visual Basic
1
Set xlw = xl.Workbooks.Open(App.Path & "mysheet.xls")



1



3 / 3 / 2

Регистрация: 19.05.2013

Сообщений: 84

20.05.2013, 22:59

 [ТС]

16

точно огромное спасибо а что на счет печати?
оно мне не пропускает параметр предварительного просмотра

Добавлено через 26 минут
а печать идет без указания определенного принтера?
просто одним оператором без параметров?



0



Pro_grammer

6792 / 2814 / 527

Регистрация: 24.04.2011

Сообщений: 5,308

Записей в блоге: 10

21.05.2013, 07:16

17

Цитата
Сообщение от n1ko
Посмотреть сообщение

а печать идет без указания определенного принтера?
просто одним оператором без параметров?

По умолчанию. Применяются все настройки, которые были у принтера до этого
Можно включить выбор — настройку принтера

Visual Basic
1
2
3
4
5
6
7
' Настройка принтера
    With xl
         .EnableEvents = False
         'Здесь Вы можете выполнить нужные действия
         .Dialogs(xlDialogPrint).Show Arg4:=1, Arg12:=1
         .EnableEvents = True
    End With

Предпросмотр печати можно ещё так включить

Visual Basic
1
2
3
4
5
6
' Предпосмотр
    With xl
         .EnableEvents = False
         .ActiveSheet.PrintPreview
         .EnableEvents = True
    End With

Но если не работает первый способ ( где аргументы для PrintOut, то и этот вряд ли заработает)



2



dev.Free

Заблокирован

21.05.2013, 07:54

18

Pro_grammer,

Не по теме:

Стал развернутей отвечать на вопросы, должность меняет людей и взгляды. :)



0



Как открыть конкретный лист в книге?

По умолчанию Excel будет запоминать ваш последний измененный рабочий лист при выходе из программы Excel каждый раз, и когда вы откроете книгу в следующий раз, этот лист будет отображаться первым. Предположим, у вас есть большая книга с сотнями листов. Можно ли находить конкретную часто используемую таблицу каждый раз при запуске файла Excel?

С помощью следующего простого кода VBA он автоматически перейдет на конкретный рабочий лист, который вы определили, независимо от того, какой рабочий лист использовался и сохранялся в последний раз.

Открыть конкретный лист в книге с кодом VBA

Автоматически открывать определенную книгу при включении Excel с помощью Kutools for Excel хорошая идея3

Добавление книг в папку избранного с помощью вкладки Office хорошая идея3


Открыть конкретный лист в книге с кодом VBA

Выполните следующие шаги, чтобы завершить эту задачу:

1. Откройте книгу, которую хотите использовать.

2. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

3. На левой панели выберите имя книги, которую вы хотите использовать (если левая панель скрыта, щелкните Вид > Обозреватель проекта чтобы показать это), затем дважды щелкните Эта рабочая тетрадь , чтобы открыть модуль, а затем скопируйте и вставьте следующий код VBA на правой панели. Смотрите скриншот:

Private Sub Workbook_Open() 
Worksheets("Mastersheet").Activate
End Sub

doc-open-specific-sheet1

Примечание: В приведенном выше коде «Мастер-лист«- это имя рабочего листа, необходимого для запуска при каждом открытии книги, вы можете изменить его на свое собственное.

4. Закройте редактор VBA и сохраните книгу как Excel Macro-Enabled Workbook как показано на следующем скриншоте:

doc-open-specific-sheet1

Теперь, когда вы в следующий раз откроете книгу, нажмите Включить контент, и он сразу перейдет на ваш конкретный рабочий лист. Это предупреждение не будет отображаться в более позднем процессе открытия, и ваш конкретный рабочий лист всегда будет открываться первым каждый раз.

doc-open-specific-sheet1


Автоматически открывать определенную книгу при включении Excel с помощью Kutools for Excel

Если вам нужно использовать одну рабочую книгу каждый день, вы можете выбрать автоматическое открытие этого рабочего листа при включении Excel каждый раз, Kutools for Excel.

Если вы установили Kutools for Excel, просто нужно добавить книгу в Автоматически открывать эти листы в следующий раз list, то при каждом открытии Excel книга открывается одновременно .:

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Откройте используемую книгу и щелкните Кутулс Плюс> Workbook > Автоматически открывать эти книги в следующий раз. см. снимок экрана:

док ктэ 1

2. В появившемся диалоговом окне проверьте книгу и щелкните Ok. Затем, пока вы включаете Excel, открывается книга.

док ктэ 2

Наконечник: Если вам не нужно открывать ее в следующий раз, снимите флажок с книги в диалоговом окне, если вам больше не нужно открывать ее автоматически, выберите ее и нажмите Очистить чтобы удалить его из списка диалога.

Щелкните здесь, чтобы узнать больше об автоматическом открытии этих книг в следующий раз.


Добавление книг в папку избранного с помощью вкладки Office

Если вы просто хотите щелкнуть, найти определенные книги и открыть их, когда вам нужно, вы можете бесплатно установить Office Tab и добавьте книги в Избранное папку.

После бесплатной установки вкладки Office выполните следующие действия:

Откройте книги, которые нужно добавить в избранное, и нажмите Office Tab > Мои Избранные > Добавить все в эту группу. Смотрите скриншот:

док от 1

Теперь все книги добавлены в папку «Избранное» и нажмите Office Tab > Мои Избранные  стрелкой вниз чтобы выбрать книгу для открытия, если вам нужно, и если вы хотите открыть все это, нажмите Открыть эту группу.

док от 2

Нажмите здесь, чтобы бесплатно загрузить Office Tab и получить 30 дней бесплатного пробного периода.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Памятка для начинающих по коду VBA Excel. Краткий справочник по часто используемым выражениям при написании программного кода.

Краткий справочник (памятка) позволяет быстро найти нужное выражение (оператор, функцию, метод) для копирования и вставки в код VBA Excel при написании программы.

Обращение к ячейке

Способы обращения к диапазону в виде одной ячейки на примере ячейки B5 на активном листе:

Range(«B5»)

[B5]

Cells(5, 2)

Cells(5, «B»)

Обращение к ячейке на неактивном листе активной книги:

Worksheets(«Имя листа»).Range(«B5») = 123

Обращение к ячейке в неактивной книге:

Workbooks(«Книга2.xlsm»).Worksheets(«Имя листа»).Range(«B5») = 123

Обращение к ячейке в неактивной текущей книге с исполняемым кодом:

ThisWorkbook.Worksheets(«Имя листа»).Range(«B5») = 123

"Имя листа" — это имя на ярлыке листа, которое в проводнике проекта VBA отображается в скобках.

Обращение к диапазону

Способы обращения к диапазону на активном листе:

‘смежный диапазон

Range(«B5:E10»)

[B5:E10]

Range(Cells(5, 2), Cells(10, 5))

Range(Cells(5, «B»), Cells(10, «E»))

‘несмежный диапазон

Range(«B5:E10, G2:I7, D12:F17»)

Application.Union([B5:E10], [G2:I7], [D12:F17])

С помощью метода Application.Union можно объединить в несмежный диапазон и выражения типа Range(Cells(5, 2), Cells(10, 5)).

Способы обращения к диапазону на неактивном листе и в неактивной книге те же, что и для диапазона в виде одной ячейки (смотрите выше).

Обмен значениями

Ячейка-переменная-ячейка

Диапазон-массив-диапазон

Dim arr

arr = Range(«A1:E5»)

Range(«A7:E11») = arr

Аналог Ctrl+стрелка

Аналог сочетания клавиш Ctrl+стрелка — свойство End объекта Range:

Dim myRange As Range, a As String

Set myRange = Range(«D10»).End(xlDown | xlToLeft | xlToRight | xlUp)

a = Range(«D10»).End(xlDown | xlToLeft | xlToRight | xlUp).Address

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

Последняя строка таблицы

Варианты определения номера последней строки таблицы:

Dim n as Long

n = Range(«A1»).CurrentRegion.Rows.Count

n = Range(«A1»).End(xlDown).Row

n = Cells(Rows.Count, «A»).End(xlUp).Row

Шаблоны для копирования

Краткий справочник по циклам и другим блокам кода. Копируйте шаблоны из памятки для начинающих и вставляйте их в свой код VBA Excel. Используйте свои переменные, условия и операторы.

Оператор With

With объект

    операторы

End With

Функция IIf

IIf(условие, если True, если False)

Оператор If…Then…Else

Однострочная конструкция:

If условие Then операторы

Многострочная конструкция полная:

If условие Then

    операторы

ElseIf условие Then

    операторы

Else

    операторы

End If

Многострочная конструкция неполная:

If условие Then

    операторы

Else

    операторы

End If

Оператор Select Case

Select Case выражение

    Case условие 1

        операторы 1

    Case условие 2

        операторы 2

    Case условие n

        операторы n

    Case Else

        операторы

End Select

Цикл For… Next

Полная конструкция:

Dim i As Long

For i = 1 To 20 Step 1

    операторы

Exit For

    операторы

Next

Неполная конструкция:

Dim i As Long

For i = 1 To 20

    операторы

Next

Цикл For Each… Next

Полная конструкция:

For Each элемент In группа

    операторы

Exit For

    операторы

Next

Неполная конструкция:

For Each элемент In группа

    операторы

Next

Цикл Do While… Loop

Условие до операторов:

Do While условие

    операторы

Exit Do

    операторы

Loop

Условие после операторов:

Do

    операторы

Exit Do

    операторы

Loop While условие

Цикл Do Until… Loop

Условие до операторов:

Do Until условие

    операторы

Exit Do

    операторы

Loop

Условие после операторов:

Do

    операторы

Exit Do

    операторы

Loop Until условие

Цикл While… Wend

While условие

    операторы

Wend

Отключение обновлений экрана

Отключение обновлений экрана позволяет ускорить длинную процедуру и скрыть мельтешение (мерцание) экрана во время ее выполнения:

Application.ScreenUpdating = False

    операторы

Application.ScreenUpdating = True

Отмена оповещений и сообщений

Отмена оповещений и сообщений в ходе выполнения процедуры:

Application.DisplayAlerts = False

    операторы

Application.DisplayAlerts = True

Например, при закрытии книги Excel из кода VBA без сохранения не будет появляться диалоговое окно с предложением сохранить книгу перед закрытием.

InputBox и MsgBox

Dim a As String

a = InputBox(«Напишите что-нибудь:»)

MsgBox a

Скрыть лист

‘Скрыть лист

Sheets(«Лист1»).Visible = False

‘Отобразить лист

Sheets(«Лист1»).Visible = True

Защита листа

‘Защитить лист

Worksheets(«Лист1»).Protect

‘Снять защиту листа

Worksheets(«Лист1»).Unprotect

Пользовательская форма

Памятка по работе с формой:

‘Загрузить (открыть) форму в модальном окне

UserForm1.Show

‘Загрузить (открыть) форму в немодальном окне

UserForm1.Show 0

‘Скрыть форму

UserForm1.Hide

Me.Hide

‘Показать скрытую форму

UserForm1.Show

‘Выгрузить (закрыть) форму

Unload UserForm1

Unload Me

Немодальное окно можно скрыть и закрыть как из модуля формы, так и из других модулей. Модальное окно можно скрыть и закрыть только из модуля формы. Ключевое слово Me используется только в модуле формы.

Удаление строк и столбцов

‘Удалить строку №9

Cells(9, 4).EntireRow.Delete

‘Удалить столбец №4

Cells(9, 4).EntireColumn.Delete

Открыть папку или файл

Открыть папку из кода VBA Excel или любой файл по его расширению в программе по умолчанию для просмотра:

‘Открыть папку

ThisWorkbook.FollowHyperlink («C:Тестовая»)

‘Открыть файл

ThisWorkbook.FollowHyperlink («C:ТестоваяДокумент1.docx»)

Закрыть все книги

Закрыть все книги Excel без сохранения изменений, кроме текущей книги с кодом:

Dim myWB As Workbook

For Each myWB In Workbooks

    If Not myWB Is ThisWorkbook Then myWB.Close False

Next

Чтобы закрыть все книги с сохранением изменений, необходимо заменить False на True.


Вы можете сохранить краткий справочник для начинающих программировать в VBA Excel в свою социальную сеть, чтобы эта памятка всегда была под рукой.


   misha122062

09.02.09 — 15:00

Надо выгрузить данные в эксель. Но там много листов, мне нужно получить нужный. Ънаю как перебором, а как просто найти по имени?

Gbie

Екс= НОвый  COMОбъект(«Excel.Application») ;

НашФайл = Екс.Workbooks.Open(путьКФайлу);

Лист = НашФайл.Sheets.Name(«ВП»);

не идет, да и сам чую наверно неверно, но как?

   Heckfy

1 — 09.02.09 — 15:03

*******************************

Открытие книги (файла):

Книга = Эксель.WorkBooks.Open(ПутьКФайлу);

ПутьКФайлу — полный путь к файлу книги Excel.

Выбор листа книги для работы с ним:

Лист = Книга.WorkSheets(НомерЛиста);

или

Лист = Книга.WorkSheets(ИмяЛиста);

НомерЛиста — номер листа в книге, ИмяЛиста — имя листа в книге.

Получение значения ячейки листа:

Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;

НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.

Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.

*********************************************

   Kolyasik

2 — 09.02.09 — 15:05

Лист = НашФайл.Sheets.Item(«ВП»);

   Kolyasik

3 — 09.02.09 — 15:06

мульен вариантов ;)

   misha122062

4 — 09.02.09 — 15:06

спасибо

   misha122062

5 — 09.02.09 — 16:06

И еще, уж извените в тему.

Как записать измененый файл, наверно типа

НашФайл.Save();  правильно?

А вот как его показать пользователю? Наверно что то типа Visible…?

   Heckfy

6 — 09.02.09 — 16:12

   Тиль

7 — 09.02.09 — 16:12

а как можно выбрать только строчки? скажем все строчки по столбец ВВ?

   Heckfy

8 — 09.02.09 — 16:17

(7)

Для Х=1 по Лист.UsedRange.Row.Count Цикл

Сообщить(«»+Лист.Cells(Х, НомерКолонки).Value );

КонецЦикла;

На вскидку, как то так. :):):)

   Тиль

9 — 09.02.09 — 16:21

Row.Count в листе 65000:)) все не выкинет?

   Heckfy

10 — 09.02.09 — 16:27

(9) Что не выкинет? Куда не выкинет? Кто здесь?

   dk

11 — 09.02.09 — 16:28

(9) читай справку по UsedRange

   Тиль

12 — 09.02.09 — 16:28

Row.Count в листе Эксель 65000:))

не получится такого цикла от 1 до 65000?

   Тиль

13 — 09.02.09 — 16:29

а..понял..по смыслу догадался

   Тиль

14 — 09.02.09 — 17:39

на Лист.UsedRange.Row.Count ругается

   Тиль

15 — 10.02.09 — 07:23

ап

   skunk

16 — 10.02.09 — 07:27

попытка

       олеЕксель = новый COMОбъект(«Excel.Application»);

   исключение

       Предупреждение(«Не удалось создать объект автоматизации для работы с MS Excel!»);

       возврат;

   конецпопытки;

   попытка

       олеКнига = олеЕксель.Workbooks.Open(стрИсточник);

   исключение

       Предупреждение(«Не удалось открыть для чтения выбранный файл!»);

       возврат;

   конецпопытки;

   олеЛист = олеКнига.Worksheets.Item(1);

   чисСтрок = олеЛист.UsedRange.Rows.Count;

   Тиль

17 — 10.02.09 — 07:45

(16) а как цикл запустить чтобы вывелись строчки с первой строки по столбец ВВ например? можно использовать запрос?

   skunk

18 — 10.02.09 — 07:47

(17)сам то хоть понял чего спросил … с первой строки по столбец… это как ты себе представляешь?

   Mikeware

19 — 10.02.09 — 07:49

(18) А что? «Копать от забора и до обеда»….

   Heckfy

20 — 10.02.09 — 07:49

(16) Ну конечно же Rows. :):) Досадная очепятка.

   Тиль

21 — 10.02.09 — 07:49

с ячейки А1 по последюю ячейку столбца ВВ

   Тиль

22 — 10.02.09 — 07:50

может запрос можно использовать? что нибудь (select * from олеЛист)? проканает?

   Heckfy

23 — 10.02.09 — 07:52

(21)

Для Х=1 по Лист.UsedRange.Rows.Count Цикл

Для У=1 По Лист.UsedRange.Columns.Count Цикл

Сообщить(«»+Лист.Cells(Х, У).Value );

КонецЦикла;

КонецЦикла;

   Тиль

24 — 10.02.09 — 07:56

(23)нормально выводит…только значения в столбик…а как чтобы строка в строку выводилась?

   Heckfy

25 — 10.02.09 — 08:02

(24) Эээ, ну посмотри в СП: ТабличныйДокумент; Присоединить…. ну, и т.д.

   Тиль

26 — 10.02.09 — 08:11

блин…жалко запросом нельзя сделать…..

блин а вопрос в офф- можно конвертировать файл эксель в дбф4?

   skunk

27 — 10.02.09 — 08:14

ADO … и хоть за запрашивайся

   Тиль

28 — 10.02.09 — 08:24

(27)пример есть?

   Тиль

29 — 10.02.09 — 08:48

ап

  

skunk

30 — 10.02.09 — 10:34

Понравилась статья? Поделить с друзьями:
  • Функция плт в excel задача
  • Функция открыть вкладку excel
  • Функция плотности вероятности в excel
  • Функция отбросить дробную часть числа в excel
  • Функция пирсона в excel