我不知道这是否可行,或者我只是在搜索错误的关键字。
基本上我有多页排列的用户表单,我想知道其中一个多页面是否可以显示工作表上的内容。
示例:在电子表格(数据)列B资产描述:笔记本电脑,台式机,打印机等,然后用户表单查看工作表(数据),然后在用户表单上显示最终用户运行笔记本电脑= 7 Desktop = 9 Printers = 2.
取决于匹配查找单词的列中的单词数。
我不知道从哪里开始创建代码,我在搜索Google时无法在任何网站上找到任何帮助(VBA用户表单显示列数)。
对不起如果我在这里没有正确询问,只是完全失去了该做什么。
提前谢谢。
答案 0 :(得分:1)
您可以创建一个功能来执行此操作。
将列中的所有单元格分配为字符串,然后将该字符串推入函数中。
Function countWords(ByVal sText As String) As Long
Dim sTextArr() As String
sTextArr = Split(sText, " ")
countWords = UBound(sTextArr) + 1
End Function
Sub test()
Dim myStr As String
myStr = "The dog barked non-stop. I wish he would stop"
MsgBox countWords(myStr)
End Sub
您只需将countWords
的值分配给您的用户表单控件。
答案 1 :(得分:1)
如果要将值添加到UserForm中包含两列的ListBox中,将第一列中的项目和第二列中的项目数量添加,则以下内容将有所帮助:
Sub foo()
Dim k As Variant
Dim d As Variant
Dim c As Range
Dim rng As Range
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
'get the last row with data on Column B
Set rng = ws.Range("B2:B" & LastRow)
Set d = CreateObject("Scripting.Dictionary")
For Each c In rng
d(c.Value) = d(c.Value) + 1
Next c
For Each k In d
If k <> "" Then
ListBox1.AddItem k
ListBox1.List(ListBox1.ListCount - 1, 1) = d(k)
End If
Next k
End Sub