回 帖 发 新 帖 刷新版面

主题:moz 大师请进!!

其实每个问题都会有不同的办法,
应该看问题的不同需求择优使用,
关于VBA for EXCEL编程其实很简单,
1. 了解EXCEL的对象
2. 了解可提供的属性和操作

网上有很多关于EXCEL编程的教程,
我学习EXCEL是从教程,录制宏,帮助中走过来的,
感觉并不难.技巧是从使用和学习中来的.固步自封不会有进步.

仅仅是数据复制的话,我不明白为什么要一大堆代码,而不用Copy to 
如果是为了避免那个16383的限制的话那也没得说,
(其实如果真有这样的要求分次Copy to就可以了)

如果没有其他要求的话,看看以下代码能否实现同样的效果?
还有的就是那个变量Selection使用得实在不是很明智.

    引用:
    F1=sys(2023)-"\"-sys(3)-".xls"
    SELECT 表1
    COPY TO (F1) TYPE xl5
    E_x=GETOBJECT(FULLPATH(F1))
    WITH E_x.sheets(1) 
      WITH .rows(1)
           .font.bold=.t.
           .horizontalalignment=3
      ENDWITH 
      WITH .cells(1,1).currentregion
           .font.size=9
           .Borders.Linestyle=1
           .columns.autofit
           .rows.autofit
      ENDWITH 
      .PageSetup.PrintTitleRows = "$1:$1"
    ENDWITH 
    WITH E_x.Application
    .Visible= .T.
    .Windows(E_x.Name).Visible= .T.
    ENDWITH 


VBA for EXCEL最大的好处就是几乎所有人手操作都可以使用代码来完成.

回复列表 (共6个回复)

沙发

moz 大师您好,前两天拜读了您和高老师的关于DBF到XLS的讨论贴以后很感兴趣,并用您的代码试验了一下,速度非常快。我在xls方面是个菜鸟,以前是用高老师的代码,我学习了您的代码以后却不知道如何将xls再转会dbf了,还请moz 大师指点下。

您的工作簿名称为什么是数字?如何指定成我要的名称呢?
还有它会自动保存在C:\VF TEMP文件下,如何修改这个路径成为我想要的?

板凳

sheet(1)表示的是第一个工作表;激活:eole.Worksheets('你要的名称').Activate 

保存时是可以自定义路径的:eole.ActiveWorkbook.SaveAs('c:\temp\name.xls') &&工作表另为

3 楼

找不到eole什么问题?
F1=sys(2023)-"\"-sys(3)-".xls"
    SELECT 包装清单
    COPY TO (F1) TYPE xl5
    E_x=GETOBJECT(FULLPATH(F1))
    WITH E_x.sheets(1) 
      WITH .rows(1)
           .font.bold=.t.
           .horizontalalignment=3
           .Worksheets('ggg').Activate
      ENDWITH 
      WITH .cells(1,1).currentregion
           .font.size=9
           .Borders.Linestyle=1
           .columns.autofit
           .rows.autofit
      ENDWITH 
      .PageSetup.PrintTitleRows = "$1:$1"
    ENDWITH 
    WITH E_x.Application
    .Visible= .T.
    .Windows(E_x.Name).Visible= .T.
    ENDWITH

4 楼

eole 就是你的 E_x

5 楼

你可以尝试一下录制宏,使用在菜单-文件-另存为-DBF格式,再研究一下录下来的代码。

在EXCEL里,大部份集合,可以用下标来指定,也可以用名称来指定。

其实,我什么都忘了。

6 楼

谢谢~

我来回复

您尚未登录,请登录后再回复。点此登录或注册