小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VBA編程,工作薄打開,兩個工作薄之間表格復制,Range的copy方法

 旅行中的甘藍 2020-04-12

在VBA中,ThisWorkbook和ActiveWorkbook區(qū)別,ThisWorkbook值得是代碼所在的工作簙,而ActiveWorkbook是目前程序代碼運行到的激活的工作簙。例如我在用VBA編寫兩個Workbook操作時,出現(xiàn)的錯誤:
一、一開始進行操作時,聲明了Application,當然第二個Workbook是在新建的Application中打開的,前面的操作都可以,如表格的選取等,但是到了利用Range方法時就出現(xiàn)“類range的copy方法無效”,這是應為兩個Range在不同的Application里面,不知道是哪個Application執(zhí)行的更快,如果是復制的Appliation快,則黏貼可以執(zhí)行,如果是先黏貼就報錯了。
我新建的Application刪除后,然后再同一個Application里打開第二個Workbook出現(xiàn)的問題:

二、ThisWorkbook和ActiveWorkbook:如我從ThisWorkbook里通過對象調用各種方法然后執(zhí)行到了Workbook2,然后再選取Workbook2的單元格進行復制,回到ThisWorkbook里進行黏貼。這時會出現(xiàn)兩種情況第一種方法是直接的: rg3.Copy ThisWorkbook.Sheets(str1).Cells(m + 4, 1) 等價于下列三行代碼 :

(1)rg3.Copy

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

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

按理說根本不需要第(2)句,但是不行。 我自己將其理解為假死狀態(tài),所謂的假死是需要接手后才能激活,而且激活也是要有等級的如:

rg3.Copy ThisWorkbook.Sheets(str1).Cells(m + 4, 1)這句中rg3是主,后面的是次,我不用管后面的死活,我只要知道它是個目的地就行,因為ThisWorkbook.Sheets....是可以找到的,所以這個方法可以成功。而第二種三行方法的代碼第一句rg3是主,而第三句ThisWorkbook.對象是主,這就擺脫了假死狀態(tài)。所以要對其進行激活,(重點)ThisWorkbook一直沒有變化可以選值,但不可以調用方法,必須激活后才能。當執(zhí)行到第一句時ActiveWorkbook是第二個表,若要成功執(zhí)行第三句后ActiveWorkbook是第一個表。(重點激活)這是就牽扯到了我認為的激活等級問題。由于Workbook、Worksheet和Range都含有activate方法,如果要變主的是Range類,則激活應激活到Sheet,如果你只激活了Workbook是不行的,同樣如果變主的是Sheet,則激活到Workbook就可以。而且激活的必須高于操作的。如用sheet就要激活WorkBook,如果激活Sheet也不行,即激活同等級不行。
三、如本案例僅僅只有兩個Book,也可以不用上面的激活操作,直接將第二個表格Close掉即可

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多