我尝试为excel创建一个宏,它读取文本文件的内容,创建它的新工作簿,然后使用创建的工作簿中的特定部分。为了能够轻松访问所需的列,我使用了Workbook.OpenText。但是我没有在我的文件中插入修复路径,而是希望获取我复制到剪贴板的文件的路径。我的问题是,我不知道如何访问Windows的剪贴板。我找到了一个使用剪贴板here的教程,但我无法访问预期的库。我还在我的计算机上搜索了一个名为FM20.DLL的文件,如本forum中所述,但找不到任何内容。 这是我的代码:
Workbooks.OpenText Filename:="C:\path\to.txt", Origin _
:=-535, StartRow:=16, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1 _
), Array(14, 1), Array(58, 1), Array(68, 1)), TrailingMinusNumbers:=True
答案 0 :(得分:0)
假设您根本不需要任何用户表单
现在添加代码
Sub ShowClipboardData()
'In the VBA editor, go to Tools, References, and set a reference to the "Microsoft Forms 2.0 Object Library"
Dim MyDataObject As DataObject
Set MyDataObject = New DataObject
MyDataObject.GetFromClipBoard
MyDataObject.GetText
MsgBox CStr(MyDataObject.GetText)
End Sub
答案 1 :(得分:0)
我刚刚以不同的方式解决了这个问题。我不再使用OpenText方法了。我使用以下代码从剪贴板插入到我的工作表中:
Range("A1").Select
ActiveSheet.Paste
这不是我的问题的答案,但作为之前的答案,我看起来更容易。它也有效,但我必须手动导入库并编写更多代码。 我必须访问代码的方式现在是另一种方式。我从一行跳到另一行,在变量中保存行,从字符串中删除空格
stringLine = Replace(Range("A" & row).Value, " ", "")
使用
创建一个包含多个值的数组anArray = Split(stringLine, "|")
无论如何,谢谢你的帮助;)