我正在尝试对从UserForm Excel Visual Basic VBA中的TextBox接收到的文本数据进行一些字符串处理(修剪和拆分)。但是我无法从存储在Microsoft Form 2.0 DataObject中的用户剪贴板中获取String / text数据。
我尝试过
Dim s As String = CType(strPaste, String)
但它表示声明的预期结尾。
如果我只做
s = CType(strPaste, String)
那就是语法错误。
我也仔细阅读了Microsoft Forms文档,但是没有与DataObject相关的方法列表。
这就是我所拥有的。
Dim dataObj As MSForms.DataObject
Set dataObj = New MSForms.DataObject
dataObj.GetFromClipboard
strPaste = dataObj.GetText()
strPaste
的变量类型是0,它是一个对象。我希望它是一个字符串。
答案 0 :(得分:1)
如果使用早期绑定,则可以在对象浏览器中查看方法。
这里有一些将东西放到剪贴板上并从剪贴板上读取的例子。
Option Explicit
Sub foo()
Dim dataObj As MSForms.DataObject
Dim getStr As String
Const putStr As String = "This went to the clipboard"
Set dataObj = New MSForms.DataObject
dataObj.SetText putStr
dataObj.PutInClipboard
dataObj.GetFromClipboard
getStr = dataObj.GetText
MsgBox getStr
End Sub
以及通过普通复制操作放置在剪贴板上的东西:
Sub foo2()
Dim dataObj As MSForms.DataObject
Dim R As Range
Dim getStr As String
Set R = Cells(1, 1)
With R
.Value = "abcxyz^123"
.Copy
End With
Set dataObj = New MSForms.DataObject
dataObj.GetFromClipboard
getStr = dataObj.GetText
MsgBox getStr
End Sub
您可能还会发现Microsoft Forms Reference的价值,以及指向示例的链接,这些示例显示了使用这些方法以及与文本框进行交互的其他示例。