`
Mr_Chunlei
  • 浏览: 28380 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

VBA编程,工作薄打开,两个工作薄之间表格复制,Range的copy方法

 
阅读更多
在VBA中,ThisWorkbook和ActiveWorkbook区别,ThisWorkbook值得是代码所在的工作簙,而ActiveWorkbook是目前程序代码运行到的激活的工作簙。例如我在用VBA编写两个Workbook操作时,出现的错误:
一、一开始进行操作时,声明了Application,当然第二个Workbook是在新建的Application中打开的,前面的操作都可以,如表格的选取等,但是到了利用Range方法时就出现“类range的copy方法无效”,这是应为两个Range在不同的Application里面,不知道是哪个Application执行的更快,如果是复制的Appliation快,则黏贴可以执行,如果是先黏贴就报错了。
我新建的Application删除后,然后再同一个Application里打开第二个Workbook出现的问题:

二、ThisWorkbook和ActiveWorkbook:如我从ThisWorkbook里通过对象调用各种方法然后执行到了Workbook2,然后再选取Workbook2的单元格进行复制,回到ThisWorkbook里进行黏贴。这时会出现两种情况第一种方法是直接的: rg3.Copy ThisWorkbook.Sheets(str1).Cells(m + 4, 1) 等价于下列三行代码 :

(1)rg3.Copy

(2) ThisWorkbook.Sheets("str").Activate

(3)ThisWorkbook.Sheet("str").Paste

按理说根本不需要第(2)句,但是不行。 我自己将其理解为假死状态,所谓的假死是需要接手后才能激活,而且激活也是要有等级的如:

rg3.Copy ThisWorkbook.Sheets(str1).Cells(m + 4, 1)这句中rg3是主,后面的是次,我不用管后面的死活,我只要知道它是个目的地就行,因为ThisWorkbook.Sheets....是可以找到的,所以这个方法可以成功。而第二种三行方法的代码第一句rg3是主,而第三句ThisWorkbook.对象是主,这就摆脱了假死状态。所以要对其进行激活,(重点)ThisWorkbook一直没有变化可以选值,但不可以调用方法,必须激活后才能。当执行到第一句时ActiveWorkbook是第二个表,若要成功执行第三句后ActiveWorkbook是第一个表。(重点激活)这是就牵扯到了我认为的激活等级问题。由于Workbook、Worksheet和Range都含有activate方法,如果要变主的是Range类,则激活应激活到Sheet,如果你只激活了Workbook是不行的,同样如果变主的是Sheet,则激活到Workbook就可以。而且激活的必须高于操作的。如用sheet就要激活WorkBook,如果激活Sheet也不行,即激活同等级不行。
三、如本案例仅仅只有两个Book,也可以不用上面的激活操作,直接将第二个表格Close掉即可
分享到:
评论

相关推荐

    VBA编程VBA编程VBA编程VBA编程

    VBA编程VBA编程VBA编程VBA编程VBA编程VBA编程VBA编程

    Excel 2003高级VBA编程宝典.rar

    Excel 2003高级VBA编程宝典是专门为在Excel...本书用大量的示例、代码阐述了VBA编程的概念,是学习在Excel 2003中用VBA进行编程的最直接和最有效的方法。通过本书的学习,能使读者迅速、轻松、高效地完成各种复杂工作。

    excel vba 工作薄操作方法

    这就一句话的事呀,两个工作簿都已经打开的情况下 及vba数据复制

    Excel2010高级VBA编程宝典.pdf

    Excel 2010高级 VBA编程宝典不仅介绍使用 Excel的新方法和开发新电子表格应用程序的步骤,还展示如何开发 VBA子例程和函数,以及如何使用高级编程技术等。针对从早期版本转向使用 Excel 2010的读者,《中文版Excel ...

    注意只是代码代码 Excel 2007与VBA编程从入门到精通

    Excel 2007与VBA编程从入门到精通Excel 2007与VBA编程从入门到精通Excel 2007与VBA编程从入门到精通Excel 2007与VBA编程从入门到精通Excel 2007与VBA编程从入门到精通Excel 2007与VBA编程从入门到精通Excel 2007与...

    Excel_2003高级VBA编程宝典

    Excel_2003高级VBA编程宝典,比较全面的EXCEL vba编程技术。

    Excel 2003高级VBA编程宝典

    全书共分8个部分,主要包括Excel 2003的基本背景、Excel应用程序开发、VBA编程、用户窗体和高级编程技巧等内容。本书用大量的示例、代码阐述了VBA编程的概念,是学习在 Excel 2003中用VBA进行编程的最直接和最有效的...

    中文版Excel 2010高级VBA编程宝典

    中文版Excel 2010高级VBA编程宝典(扫描版) ------------------------------------------------------------ 基本信息 原书名:Excel 2010 Power Programming with VBA 原出版社:Wiley 作者:John Walkenbach 译者:...

    vba跨工作薄调用宏.doc

    vba跨工作薄调用宏.doc

    Office_Word_Excel_PPT_Access_VBA编程手册合集(CHM版)

    手册包含VBA编程中涉及的:对象、属性、方法、示例及相关的参考代码。 VbA_Office编程帮助手册(CHM版本).chm VBA_Excel编程帮助手册(CHM版本).chm VBA_Word编程帮助手册(CHM版本).chm VBA_PowerPoint编程帮助...

    EXCEL VBA合并工作表与工作薄

    合并Excel文件 宏代码 合并工作表 宏代码

    Access数据库VBA数据库编程.pdf

    本章我们首先介绍数据库访问接口,然后介绍 Access支持的DAO和ADO两种数据库编程方法。 9.1 数据库引擎及其接口 VBA是通过Microsoft Jet数据库引擎工具来支持对数据库的 访问。所谓数据库引擎 实际上是一组动态链接...

    Excel 2010高级VBA编程宝典

    中文版 excel 2010高级 vba编程宝典》不仅介绍使用 excel的新方法和开发新电子表格应用程序的步骤,还展示如何开发 vba子例程和函数,以及如何使用高级编程技术等。针对从早期版本转向使用 excel 2010的读者,《中文...

    EXCELVBA编程从入门到精通.pdf

    EXCELVBA编程从入门到精通.pdf

    Excel 2010 VBA编程与实践

    Excel 2010 VBA编程与实践的随书光盘。

    EXCEL 2003高级VBA编程宝典.pdf

    EXCEL VBA学习工作中不可或缺的一本好书 本书是专门为在Excel 2003中使用VBA编程而编写的一部专著,本书是享有Mr.Spreadsheet美誉的国际知名作者John Walkenbach继《Excel 2003公式与函数应用宝典》、《中文版Excel...

    Excel 2010 VBA编程源码集合

    以大量的示例,详细介绍了利用Excel VBA操作Excel进而操作Witldows的方法和技巧,包括管理Excel VBA常见对象(Alrolication对象、Workbook对象、Worksheet对象、Range对象、Chart对象、Shape对象、窗体控件对象以及...

    Excel VBA编程实例(150例).docx

    《Excel VBA编程入门范例》主要是以一些基础而简短的VBA实例来对ExcelVBA中的常用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单元格区域、图表、数据透视表、形状、控件、菜单和...

Global site tag (gtag.js) - Google Analytics