乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       旅行中的甘藍 2020-04-12

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

      二、ThisWorkbook和ActiveWorkbook:如我從ThisWorkbook里通過對象調(diào)用各種方法然后執(zhí)行到了Workbook2,然后再選取Workbook2的單元格進行復(fù)制,回到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一直沒有變化可以選值,但不可以調(diào)用方法,必須激活后才能。當執(zhí)行到第一句時ActiveWorkbook是第二個表,若要成功執(zhí)行第三句后ActiveWorkbook是第一個表。(重點激活)這是就牽扯到了我認為的激活等級問題。由于Workbook、Worksheet和Range都含有activate方法,如果要變主的是Range類,則激活應(yīng)激活到Sheet,如果你只激活了Workbook是不行的,同樣如果變主的是Sheet,則激活到Workbook就可以。而且激活的必須高于操作的。如用sheet就要激活WorkBook,如果激活Sheet也不行,即激活同等級不行。
      三、如本案例僅僅只有兩個Book,也可以不用上面的激活操作,直接將第二個表格Close掉即可

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多