ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3377|回复: 6

[求助]需要从csv文件中读取,所以我做了一个导入对话框

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-9-27 20:09 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Private Sub cmdDataINPUT_Click()
Dim MyDialog As FileDialog, GetStr As String
On Error Resume Next                          '忽略错误 '定义一个文件夹选取对话框
                                              'Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
Set MyDialog = Application.FileDialog(msoFileDialogOpen) '
With MyDialog
.Filters.Clear                                '清除所有文件筛选器中的项目
.Filters.Add "csv 文件", "*.csv", 1           '增加筛选器的项目为所有csv文件
.AllowMultiSelect = True                      '允许多项选择
.Title = "选择导入文件"

If .Show = -1 Then                            '确定

 For Each vrtSelectedItem In .SelectedItems '在所有选取项目中循环,取得所选的文件路径和文件名
GetStr = GetStr & vbCrLf & vrtSelectedItem
Next vrtSelectedItem
'MsgBox GetStr

'Workbooks.Open FileName:="GetStr"    '打开该文件,但是这里却行不通,苦恼的就是这里

Workbooks.Open FileName:="C:\CAS系统导入文件-忽视的法士大夫似的发--1复件5.csv"      '打开该文件,用这个可以打开,但不是我想要的,因为每次要打开的文件是用户选择的那个,而不是固定这个


cboType.Text = Sheets(1).Cells(4, 2)          'cboType是系统界面上的控件,他的值等于选中的文件的Sheets(1).Cells(4, 2)   ,这里只是举例,真正系统中有很多

ActiveWorkbook.Close                                '关闭打开的文件            

'Windows("C:\CAS系统导入文件-忽视的法士大夫似的发--1复件5.csv").Close      '关闭打开的文件
' Workbooks(GetStr).Close True                  '关闭打开的文件,但这里也行不同,不过可以用这个ActiveWorkbook.Close 

End If
End With

End Sub

还有一个问题是:以上次序弹出的"选择导入文件"对话框,我单击一个文件的时候,文件名的地方没有显示该文件的文件名,仍然是空白的,但这个不是很要紧.

高手们帮帮忙帮我改以下,也可以从新帮我编一个,先谢了!

 

 

 

 

TA的精华主题

TA的得分主题

发表于 2006-9-28 06:43 | 显示全部楼层

大哥,你连抄我的代码也不行啊?我晕。

试一下这个:

Sub Example2()    '此代码功能为列出指定文件夹中所有选取的WORD文件全路径名
    Dim MyDialog As FileDialog
    Dim vrtSelectedItem As Variant, myXls As Workbook
    On Error Resume Next    '忽略错误
    '定义一个文件夹选取对话框
    Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
    With MyDialog
        .Filters.Clear    '清除所有文件筛选器中的项目
        .Filters.Add "csv 文件", "*.csv", 1           '增加筛选器的项目为所有csv文件
        .AllowMultiSelect = True    '允许多项选择
        If .Show = -1 Then    '确定
            For Each vrtSelectedItem In .SelectedItems    '在所有选取项目中循环
                Set myXls = Workbooks.Open(Filename:=vrtSelectedItem)
                MsgBox myXls.Sheets(1).Cells(4, 2).Value
                '               cbotype.Text = myXls.Sheets(1).Cells(4, 2).Value
                myXls.Close False
            Next
        End If
    End With
End Sub

[此贴子已经被作者于2006-9-28 6:43:47编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-28 21:58 | 显示全部楼层
呵呵,斑竹见怪末怪,先谢了,我昨晚凑了半天才凑出有同样功能的语句,但是写的很不规范,斑竹的写的很清楚。

但是第二个问题还是没解决:以上程序弹出的对话框,我单击一个文件的时候,文件名的地方没有显示该文件的文件名,仍然是空白的。我想应该是对话框的参数没设置好,但是又不知道应该对哪个参数进行设置。vb的帮助里面也找不到这个参数。请斑竹赐教。

TA的精华主题

TA的得分主题

发表于 2006-9-29 06:40 | 显示全部楼层
QUOTE:
以下是引用hhb4251在2006-9-28 21:58:11的发言:

但是第二个问题还是没解决:以上程序弹出的对话框,我单击一个文件的时候,文件名的地方没有显示该文件的文件名,仍然是空白的。我想应该是对话框的参数没设置好,但是又不知道应该对哪个参数进行设置。vb的帮助里面也找不到这个参数。请斑竹赐教。

显示文件名有意义吗?

你的目的在于打开所有选定的文件,而不论文件名的,我晕。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-29 22:18 | 显示全部楼层
QUOTE:
以下是引用守柔在2006-9-29 6:40:16的发言:

显示文件名有意义吗?

你的目的在于打开所有选定的文件,而不论文件名的,我晕。

不好意思,守斑竹,我首先更正一下,我现在把他设成一次只能打开一个文件了,而不是打开所有选定的文件.

我想让他显示文件名是因为,这个系统是一个比较正式的系统(目前为止程序代码有60000行,而且开发还没完全结束),使用人员很多,而且大部分都是非本公司人员,考虑到公司形象问题,我就尽全力把它做的更好,希望大家能够理解,如果高手们知道怎么设置,希望不啬赐教.先谢了!

TA的精华主题

TA的得分主题

发表于 2006-9-30 05:40 | 显示全部楼层

请楼主检查一下Word自带的打开对话框(CTRL+O),它这样做了吗?

由于需要根据用户的不同选定文件的单击事件才能显示不同的文件名,我不知道如何捕捉这个事件,在FileDialog对象中,没有提供这个功能。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-9-30 18:34 | 显示全部楼层

我看了word自带的打开对话框,确实是没有这么做,斑竹谢了!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 00:48 , Processed in 0.030602 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表