#excel #vba #userform #multipage
#excel #vba #пользовательская форма #многостраничный
Вопрос:
У меня есть пользовательская форма Excel с многостраничным элементом управления, содержащим в настоящее время 9 страниц. Каждая страница содержит информацию о сборке для определенного компонента с размерами, введенными пользователем. У меня есть изображение, вставленное на каждую страницу, показывающее дизайн каждого компонента и текстовые поля поверх изображения, в которые пользователь вводит пользовательские размеры для производственных расчетов. Все, что я хочу сделать, это создать файлы изображений на основе определенной структуры именования, которые могут быть связаны с несколькими ячейками в Excel. Например, я хотел бы, чтобы, когда пользователь сохраняет пользовательскую форму, изображения каждого многостраничного представления были названы и помещены в определенные ячейки на листе. Имена должны соответствовать уникальному идентификатору, который я использую, с суффиксом, чтобы я мог переключаться между проектами на странице моего проекта, и изображения для каждого компонента будут меняться в зависимости от названия. У меня настроена страница проекта, и я могу справиться с переключением, мне нужна помощь в циклическом просмотре многостраничных страниц, создании файлов изображений части каждой страницы и сохранении в определенном месте.
Спасибо за вашу помощь!
Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT = 44
Const VK_LMENU = 164
Const KEYEVENTF_KEYUP = 2
Const KEYEVENTF_EXTENDEDKEY = 1
Private Sub CommandButton2_Click()
Dim pdfName As String
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY KEYEVENTF_KEYUP, 0
DoEvents 'Otherwise, all of screen would be pasted as if PrtScn rather than Alt PrtScn was used for the copy.
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
pdfName = ActiveWorkbook.Path amp; "" amp; Me.Name amp; " " amp; Format(Now, "yyyy-mmm-dd") amp; ".pdf"
'Debug.Print pdfName
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=pdfName, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=False, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Worksheets(Worksheets.Count).Delete
Unload Me
End Sub
Комментарии:
1. Какой код вы уже пробовали? Можете ли вы опубликовать свой код и любые возникающие ошибки? SO не является сервисом для написания кода, но мы более чем рады помочь, если вы застряли или столкнулись с неожиданной ошибкой.
2. Я понимаю, я действительно просто ищу направление. Я нашел приведенный ниже код, но не уверен, как реализовать на странице и циклически просматривать страницы.