VBA Excel - выбор документа для обработки
Несколько раз была задача, когда изменения надо вносить не в текущий документ, а в документ с неизвестным именем. В результате получилась вот такая форма:
В listbox выводится список открытых документов или можно открыть файл через стандартный диалог открытия.
К сожалению, эксель не экспортирует формы в текстовом виде (во всяком случае, 2007 точно нет), поэтому будут скрины контролов и их свойств.
Как вы видите, я не заморачивался с названиями.
Код:
Public SrcName
Private Sub CommandButton1_Click()
SrcName= ""
If ListBox1.ListIndex >= 0 Then
SrcName= ListBox1.List(ListBox1.ListIndex)
UserForm1.Hide
End If
End Sub
Private Sub CommandButton2_Click()
SrcName= ""
UserForm1.Hide
End Sub
Private Sub OpnButton_Click()
iOpen = Application.Dialogs(xlDialogOpen).Show
If iOpen = True Then
SrcName= ActiveWorkbook.Name
UserForm1.Hide
Else
MsgBox "отмена", vbCritical, ""
Exit Sub
End If
End Sub
Private Sub UserForm_Activate()
SrcName= ""
ListBox1.Clear
NoShow = ThisWorkbook.Windows(1).Caption
For i = 1 To Application.Windows.Count
If Application.Windows(i).Caption <> NoShow Then ListBox1.AddItem (Application.Windows(i).Caption)
Next ' enum windows
End Sub
Пикабу сожрал все отступы, это не я!
Пример использования:
Dim SrcWB As Worksheet
UserForm1.Show
If UserForm1.SrcName= "" Then Exit Sub
Windows(UserForm1.SrcName).Activate
Set SrcWB = ActiveWorkbook
P.S. Баянометр считает, что эксель на 41% похож на клубничку. Мне кажется, что он недалёк от истины.
MS, Libreoffice & Google docs
719 постов15K подписчика
Правила сообщества
1. Не нарушать правила Пикабу
2. Публиковать посты соответствующие тематике сообщества
3. Проявлять уважение к пользователям
4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.
По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях
Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.
Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.