近期有很多朋友通过在微信留言和发送消息、以及发送邮件问一些关于Excel和VBA的应用问题,在此选几个问题作出自已的解答,希望对朋友们有所帮助 。以后我会在每周末,通过问与答的形式推送一周以来我所解答的一些问题,与大家分享 。
Q:我想去除工作表中公式的等号,从而直观地获取公式?
A:可以使用下面的VBA代码来完成:
Sub GetFormula()
Dim wksData As Worksheet ‘代表公式所在的工作表
Dim wksFormula As Worksheet ‘放置公式文本的工作表
Dim rngFormula As Range ‘公式所在的区域
Dim rng As Range
Dim i As Long
Set wksData = https://www.i8ku.com/2021/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= https://www.i8ku.com/2021/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
推荐阅读
- 怎么理解公式中的数组?
- 怎么禁用Excel中的剪切、复制、粘贴功能?
- 怎么改变用户窗体中的鼠标图形?
- 怎么处理用户窗体右上角的X按钮?
- 数学想象画怎么画
- 虫子拼音怎么拼
- 多音字“蒙”怎么读音和组词?
- 拼多多旗舰店是官方的吗?怎么入驻?
- 拼多多跨境电商好做吗?怎么做?
- 拼多多主营类目是什么意思?怎么选择?