CommonDialog1.Flags = cdlOFNNoReadOnlyReturn Or cdlOFNOverwritePrompt Or cdlOFNPathMustExist Or cdlOFNExtensionDifferent Or cdlOFNNoValidate
CommonDialog1.CancelError = True
CommonDialog1.DefaultExt = ".xls"
CommonDialog1.Filter = "Excel (*.xls)|*.xls|Word (*.doc)|*.doc"
CommonDialog1.FileName = "表名"
CommonDialog1.InitDir = App.Path
CommonDialog1.ShowSave
If CommonDialog1.FilterIndex = 1 Then
    d_filename = CommonDialog1.FileName & ".xls"
Else
    d_filename = CommonDialog1.FileName & ".doc"
End If
DataGrid1.ExportToFile d_filename, False, 0以上为代码,可是导出的时候遇到一个问题,某字段(字符型,中间带有符号“-”)
导出到EXCEL后,格式变成类似JULY-14 格式,请高手指点如何避免这个问题,先谢过。

解决方案 »

  1.   

        导入前强制设为文本格式,并拉长单元格    Range("B3").NumberFormatLocal = "@"
        Columns("B:B").ColumnWidth = 31.13
      

  2.   

    谢谢先
    不过还有一下问题:继续请教,
    按照jhone99大哥的方法,开始提示子函数未定义,我引用一个控件后
    现提示对象Range 的方法 '_Global' 失败
    请继续指点,谢谢
      

  3.   

    CommonDialog1.Flags = cdlOFNNoReadOnlyReturn Or cdlOFNOverwritePrompt Or cdlOFNPathMustExist Or cdlOFNExtensionDifferent Or cdlOFNNoValidate 
    CommonDialog1.CancelError = True 
    CommonDialog1.DefaultExt = ".xls" 
    CommonDialog1.Filter = "Excel (*.xls)|*.xls|Word (*.doc)|*.doc" Range("B3").NumberFormatLocal = "@" 
    Columns("tydh").ColumnWidth = 31.13CommonDialog1.FileName = "表名" 
    CommonDialog1.InitDir = App.Path 
    CommonDialog1.ShowSave 
    If CommonDialog1.FilterIndex = 1 Then 
        d_filename = CommonDialog1.FileName & ".xls" 
    Else 
        d_filename = CommonDialog1.FileName & ".doc" 
    End If 
    DataGrid1.ExportToFile d_filename, False, 0 
    这是改后的代码,小弟菜鸟,有低级错误还望见谅。
      

  4.   

    呵呵,这个有点太生硬看你程序的意思excel表的格式如表头等已经设计好了,可以不在程序中加语句
    那就可以在excel中强制设为文本格式,并拉长单元格
      

  5.   

    在EXCEL里设置,我以前也有试过
    刚才也去看了下,详细情况是这样:
    此字段数据为:4800-6
    导出后为:Jun-00
    然后我打开excel
    双击此数据,当光标定位到此格里面的时候,
    自动变为:4800-6-1
    拉长单元格,无效,失去焦点后变回:Jun-00
    选择设置单元格格式的时候,默认的是“yyyy-mm”
    设置格式为‘@’的时候变成:1059357
    我尝试设置成自定义格式的“yyyy-m”的时候变回:4800-6
    我怀疑是不是EXCEL的设置的问题,发现符合条件字段即默认此“yyyy-mm”格式
    不知有何良策,再次谢谢指点。
      

  6.   


    lz的文件是不是原来已经存在,如果原来已经有,先设置为文本格式及拉长单元格,后设置不管用.
    其实lz从word里复制一个身份证号码到excel实验就能知道,要先设置,后粘贴,单元格的长度要够用.我给的代码不是lz这种导入方法,是向单元格中写的那种.
    我现在没有vb没办法试lz这种方法
      

  7.   

    看lz代码好象原来不存在文件
    DataGrid1是什么控件?datagrid好象没有ExportToFile属性 
      

  8.   

    嗯···对的···以前不存在文件,导出后生成文件的,
    DataGrid1实际就是datagrid了,
    这样导出的作用是导出当前datagrid中显示的。
    可是遇到这个情况,
    找不到解决办法,
    不管怎样,先谢谢你了··