在EXCEL中添加按钮,点击按钮弹出打开文件对话框,然后选择文件后添加到单元格内,VBA的程序怎么弄

一开始就是希望按下灰色小键后可以打开文件夹最后达到

这种效果,求代码

下面的代码是从我的程序里面复制的,稍做改动就可以适合你的需要:

    sName = Application.GetOpenFilename(dept & "文本数据,*.txt;*.unl;*.cvs;*.csv", , "打开信息技术部提供的文本数据文件")
    If sName = False Then Exit Function
    Sheets("工具").[b2].Value = sName追问

不行啊!我就想要一个按钮能实现插入文件的功能

追答

要插入文件名到单元格,一个语句就可以,不过我不知道你是否看懂、是否去测试了这个语句。

要插入文件内容,需要打开文件读取内容,然后写入到表中,需要一个循环。

追问

就是一个添加附件的功能,求代码

追答

多么希望你能用详细的语句表达你的需求,让人明白你想要什么,猜着真累


下面语句是不是你要的功能:

sName = Application.GetOpenFilename("所有文件,*.*", , "选择附件")
ActiveSheet.OLEObjects.Add(Filename:=sName, Link:=False, DisplayAsIcon:=False).Select


实现的功能,和你按菜单里面的插入、对象、来自文件。

追问

一开始是

我要求点击灰色小键后打开文件夹,最后达到

这种效果就好,你上面的代码不可以出现位置正好的图标啊!我就是想实现跟插入-对象-来自文件一模一样的效果!

追答

上面的代码就是插入对象,如果需要显示为图标需要修改一下参数,下面的代码部分一看就知道怎么修改:
DisplayAsIcon:=False

追问

关键是我已经改成TRUE了,可是出来的大小图标还是不对,求加个Q,这是我第一个任务,再不出来就快被炒咯,急急急啊

追答

个人认为,关键是学会方法:

录制宏,进行操作,查看代码,修改使用。

Sub xxx()
    Dim sName As String, ole As OLEObject
    sName = Application.GetOpenFilename("所有文件,*.*", , "选择附件")
    Set ole = ActiveSheet.OLEObjects.Add(Filename:=sName, Link:= _
        False, DisplayAsIcon:=True, IconFileName:= _
        "C:\windows\Installer\{90150000-0011-0000-0000-0000000FF1CE}\xlicons.exe", _
        IconIndex:=0, IconLabel:=sName)
    ole.Top = 100
    ole.Left = 100
    ole.Width = 100
End Sub

图标、标签、大小,都是可以改变的。

追问

按你说的,我现在图标不是正常的word文档或者excel表格的样子,而且文档下面是路径也不是文档的名称,求在线解答

追答

例子代码中的下面代码是指定图标文件和标签的:
IconFileName:= "C:\windows\Installer\{90150000-0011-0000-0000-0000000FF1CE}\xlicons.exe"
IconIndex:=0

IconLabel:=sName

你录制宏,看看图标文件是什么,自己修改。

追问

录制宏过了,必须指定文件才能录制,怎么改都达不到效果,求直接点的代码!

追答

图标文件和图标标签是分开的,标签就是显示在图标上的文件名。

我的代码在我的机器上执行完全正确,就是最直接的代码,在你的机器上可能不正确,那就是图标文件的路径可能不同。

你自己录制了宏,只看图标文件的路径,替换到我的代码里面就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-30

是不是要这种效果的?代码比较多。看呢称联系。

追问

是这种效果,打开文件夹后可以插入word文档或者图片等就可以,求代码

第2个回答  2014-07-30
Set fd = Application.FileDialog(msoFileDialogFolderPicker)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网