Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]根据筛选导出EXCEL,自动命名Sheet1等

木行之  发表于:2012-03-19 11:20:29  
复制

如何根据筛选导出EXCEL,自动命名SHEET1,SHEET2。

 

现有一个主窗体内的三个子窗体,如何把筛选结果,导出到EXCEL,自动命名Sheet1(基本信息),Sheet2(履历信息),sheet3(学历经历)。

如果解决不了自动命 名的问题,解决导出也行。谢谢了。

 

传个例子,都在例子上。

 

点击下载此附件

 

Top
叶海峰 发表于:2012-03-19 15:36:52

Dim xlapp  As Object
    Dim i      As Byte
    Dim str    As String
    Set xlapp = CreateObject("excel.application")
    With xlapp
        .Visible = False
        .displayalerts = False
        .workbooks.Add
        If .activeworkbook.sheets.Count > 1 Then
            For i = 2 To .activeworkbooks.sheets.Count
                .sheets(i).Delete
            Next
        End If

        For i = 1 To 3
            .sheets.Add
            str = Choose(i, "基本信息 子窗体", "工作履历 子窗体", "学历经历 子窗体")
            Me.Controls(str).SetFocus
            SendKeys "^a", True
            SendKeys "^c", True
            .Visible = True
            .range("A1").select
            SendKeys "^v", True
            .Visible = False
            .activesheet.Name = Replace(str, " 子窗体", "")
        Next i
        .sheets(4).Delete
        .Save
        .Visible = True
        .displayalerts = True
    End With

    Set xlapp = Nothing

 



木行之 发表于:2012-03-19 15:55:55

这么厉害啊。我赶紧试试。

 



木行之 发表于:2012-03-19 15:59:04

  For i = 2 To .activeworkbooks.sheets.Count

 

这句通不过,说不支持该类属性或方法 

运行时错误  ‘438’



木行之 发表于:2012-03-19 16:13:06

 For i = 2 To .activeworkbooks.sheets.Count

 

找出来了,多了一个 S,去掉后,说 .sheets(i).Delete 下标越线。改成.sheets(i-1).Delete 后,能运行。但 工作履历 子窗体 复制过去的数,只有 一个字段 的内容。



木行之 发表于:2012-03-19 16:25:58

改过之后,还是有点瑕疵。

第二个窗体数据,没法全导出。麻烦您能帮我再看一下吗?谢谢。

 

 

点击下载此附件

叶海峰 发表于:2012-03-19 16:38:52

我这里测试没问题啊

点击下载此附件

总记录:6篇  页次:1/1 9 1 :