本文作者:office教程网

如何获取公式、在用户窗体中操作工作表、列出用户窗体名称等问题的答疑

office教程网 2023-12-28 08:54:59
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

近期有很多朋友通过在微信留言和发送消息、以及发送邮件问一些关于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 = 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()

如何理解公式中的数组?

Q:我知道数组公式很强大,很想学习,但有点想不明白公式中的数组,能够解释一下吗? A:数组公式确实非常强大,能够完成许多使用普通公式难以完成的任务。数组公式通常会生成中间数组,最终结果可能是一个值,也可能是一组值。下面,我们简单地介绍一下数组公式生成的中间数组,以促进对数组公式的理解。 如图1所示,在单元格D2中输

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

如何获取含有相同字符的字符串中该字符第n次出现的位置?

Q:有时候,我们需要获取字符串中某字符第n次出现的位置。例如,在单元格A1中的字符串为“xy-01-02”,如何知道字符“-”第2次出现的位置呢?(当然,我们数一下,就可以知道在该字符串的第6位第2次出现了字符“-”) A:我们这里使用VBA代码自定义函数来实现,详细的代码清单如下: FunctionGetNthP

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:如何获取公式、在用户窗体中操作工作表、列出用户窗体名称等问题的答疑发布于2023-12-28 08:54:59
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: