Foxtable(狐表)用户栏目专家坐堂 → 请教:SaveExcel函数保存后其他工作表数据有效性不可用是什么原因


  共有2913人关注过本帖树形打印复制链接

主题:请教:SaveExcel函数保存后其他工作表数据有效性不可用是什么原因

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 17:52:00 [显示全部帖子]

1、加上代码

 

dlg.OverwritePrompt = False

 

2、你的excel文件发上来测试一下


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 18:18:00 [显示全部帖子]

我这样测试:

 

导出一次excel,然后重新设置【有效性】,然后再怎么导出都没问题了。

 

有可能是bug,你先这样处理一下。


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/23 10:01:00 [显示全部帖子]

比较麻烦,这样就必须换一种方式导出了,参考(二维数组导出)

 

on error resume Next
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim dt As Table = Tables("订单")
    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook
    If FileSys.FileExists(dlg.FileName) Then
        wb = App.WorkBooks.Open(dlg.FileName)
    Else
        wb = App.WorkBooks.Add
    End If
    Dim arr(0 To dt.Rows.count,0 To dt.Cols.count-1) As Object  '定义二维数组
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets("订单")
    If ws Is Nothing Then
        ws = Wb.WorkSheets.add
        ws.name = "订单"
    Else
        Ws.UsedRange.clear
    End If
    For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
        arr(0,c) = dt.Cols(c).Name
    Next
    For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
        For c As Integer = 0 To dt.Cols.Count -1
            arr(r+1, c) = dt.rows(r)(c)
        Next
    Next
    Dim Rg2 As MSExcel.Range = Ws.Range("A1:" & ws.cells(dt.Rows.count+1, dt.Cols.count).address)  '定义Excel中写入的区域
    Rg2.Value = arr
    app.visible = True
End If


 回到顶部