访问从剪贴板文本文件在Excel中使用VBA
我试图创建Excel中的宏读取文本文件的内容,创造了一个新的工作簿,比使用创建的工作簿中的特定部分。为了能够轻松访问所需的列,我使用了Workbook.OpenText。但不是插入修复路径到我的文件,我想获得我复制到剪贴板的文件的路径。我的问题是,我不知道如何访问windows的剪贴板。我找到了关于使用剪贴板here的教程,但我无法访问预期的库。我也在我的电脑上搜索了一个名为FM20.DLL的文件,就像这个forum中所解释的那样,但是找不到任何东西。 这里是我的代码:访问从剪贴板文本文件在Excel中使用VBA
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
我刚刚以不同的方式解决了这个问题。我不再使用OpenText方法。我用下面的代码从剪贴板插入到我的工作表:
Range("A1").Select
ActiveSheet.Paste
这不是我的问题的答案,但看起来像以前一样的答案很容易给我。它也有效,但我不得不手动导入库并编写更多的代码。 我必须访问代码的方式现在是另一种。我从行跳转到行,获取保存在一个变量的行,从字符串
stringLine = Replace(Range("A" & row).Value, " ", "")
删除空格和使用
anArray = Split(stringLine, "|")
反正创建具有几个值的数组,谢谢你帮助;)
假设你并不需要在所有
任何用户表单现在添加代码
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
感谢您的解释。我创建了UserForm,但不能像第二张图片中那样删除它。也许你可以向我解释,这是必须完成的。此外,我有德语版本的VBA编辑器。所以不知道如何设置参考。它是以“全球”开头的大名单吗?因为我无法在此列表中找到该库。 – 2012-07-26 08:02:38
你也可以手动添加引用文件要'' “X:\ WINDOWS \ SYSTEM32 \ FM20.DLL”''''X''就是安装Windows的驱动器。 – Cylian 2012-07-26 08:08:07
我刚刚解决了这个问题,插入了库。我一直没有停止我的剧本,所以这是不可能创建一个参考.... 您脚本工作,但其仅适用于将在任何地方复制纯文本。这不适用于孔文件。是否有可能获得路径? – 2012-07-26 09:11:49
这是否帮助? http://stackoverflow.com/questions/9022245/get-text-from-clipboard-using-gettext-avoid-error-on-empty-clipboard让我知道如果你仍然需要帮助? – 2012-07-26 14:00:52
我仍然有问题,使用OpenText从剪贴板访问文件。在剪贴板内部没有路径,但OpenText只能使用路径。我不知道其他方法,如何在同一开头打开一个文本,从而使内容将被格式化就像在我的代码片断 – 2012-07-30 07:59:26