2025年亞洲寵物展覽會、京寵展有哪些亮點
551
2025-04-02
如何獲取公式、在用戶窗體中操作工作表、列出用戶窗體名稱等問題的答疑
Q:我想去除工作表中公式的等號,從而直觀地獲取公式?
Sub GetFormula()
Dim wksData As Worksheet ‘代表公式所在的工作表
Dim wksFormula As Worksheet ‘放置公式文本的工作表
Dim rngFormula As Range ‘公式所在的區域
Dim rng As Range
Dim i As Long
Set wksData = Worksheets(“Sheet1”)
Set wksFormula = Worksheets(“Sheet2”)
Set rngFormula = wksData.UsedRange.SpecialCells(xlCellTypeFormulas)
wksFormula.Cells.Clear
‘在wksFormula工作表中放置公式
For Each rng In rngFormula
i = i + 1
wksFormula.Range(“A” & i).Value= Mid(rng.Formula, 2, (Len(rng.Formula)))
Next rng
End Sub
代碼中,wksData代表公式所在的工作表,即你想要獲取這個工作表中的公式;wksFormula代表放置所獲取的公式的工作表。由于Excel會將等號開頭的表達式當作公式,因此我們先除去公式開頭的等號,這樣就能順利地放置公式文本了。
Q:如何通過用戶窗體來顯示相應的工作表?
A:在VBE中,插入一個用戶窗體,在其中放置一個列表框和兩個按鈕,然后在該用戶窗體模塊中輸入下面的代碼:
Private Sub CommandButton1_Click()
Dim i As Integer, str As String
For i = 0 To ListBox1.ListCount – 1
If ListBox1.Selected(i) = True Then
str = ListBox1.List(i)
End If
Next i
Worksheets(str).Activate
End Sub
Private Sub CommandButton2_Click()
Unload UserForm2
End Sub
Private Sub UserForm_Initialize()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
ListBox1.AddItem (wks.Name)
Next wks
End Sub
運行后的效果如下圖1所示:
圖1
其中,當用戶窗體初始化時左側的列表框顯示工作簿中所有工作表的名稱,選取其中一個工作表名稱后,單擊右側的“激活選取的工作表”按鈕,會使該工作表成為當前工作表。單擊“關閉”按鈕使用戶窗體消失。
Q:能不能遍歷所有用戶窗體,獲取每個用戶窗體的名稱?
A:在VBE中,插入一個標準模塊,輸入下面的代碼:
Sub testListUserFormName()
Dim str As String
Dim VBC As VBIDE.VBComponent
str = “已經創建的用戶窗體如下:”
For Each VBC In ThisWorkbook.VBProject.VBComponents
If VBC.Type = vbext_ct_MSForm Then
str = str & vbCr & VBC.Name
End If
Next VBC
If str = “” Then
MsgBox “沒有找到用戶窗體!”
Exit Sub
End If
MsgBox str
End Sub
如果VBE中有UserForm1和UserForm2兩個用戶窗體,運行上述代碼后的效果如下圖2所示:
圖2
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。