Вопрос:
Я создаю форму с разными разделами. Я не хочу использовать командную кнопку или кнопку Toggle (их внешний вид уродливый), и поскольку это для клиентов, я хочу, чтобы он был удобным для пользователя. В любом случае, так что в основном я хочу создать макрос, который, когда он нажимает на фигуру, будет сбрасывать ненужные строки и расширять правильные строки.
До сих пор это то, что я смог найти… но он применим только к командной кнопке.
Private Sub CommandButton1_Click() With Me.CommandButton1 If .Caption = «Initial Request» Then .Caption = «Hide Rows» Rows(«12:20»).Hidden = False Else .Caption = «Initial Request» Rows(«12:200»).Hidden = True End If End With End Sub
Это работает отлично… но есть ли способ преобразовать это, чтобы его можно было добавить в модуль и, следовательно, присвоить форме?
Большое спасибо за вашу помощь.
Ответ №1
Вы можете добавить фигуру, скажем, Rectangle и присвоить ей макрос с этим эквивалентным кодом:
Sub Rectangle2_Click() With Sheet3.Shapes(«rectangle 2»).TextFrame2.TextRange If .Text = «Initial Request» Then .Text = «Hide Rows» sheet3.Rows(«12:20»).Hidden = False Else .Text = «Initial Request» sheet3.Rows(«12:20»).Hidden = True End If End With End Sub
Очевидно, что в этом примере я добавил прямоугольник в Sheet3 и получил имя “прямоугольник 2”. Вы должны скорректировать эти имена в своем случае.
Ответ №2
Попробуйте этот код:
Option Explicit Sub Cloud_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(«Sheet2») If ws.Shapes(«Cloud 2»).TextFrame2.TextRange.Text = «Initial Request» Then ws.Shapes(«Cloud 2»).TextFrame2.TextRange.Text = «Hide rows» ws.Rows(«12:20»).Hidden = False Else ws.Shapes(«Cloud 2»).TextFrame2.TextRange.Text = «Initial Request» ws.Rows(«12:20»).Hidden = True End If End Sub
Я надеюсь, что следующий экранный снимок объяснит остальное.