返回列表 上一主題 發帖

[發問] 各位老師vba 改善獲取指定頁的程式內有程序代碼!

回復 10# marco2000


請下載摹擬檔案,試執行看看是否是版大所要的。
http://www.FunP.Net/115998
[b]Kubi[/b]

TOP

http://www.FunP.Net/246277
我傳了我的檔上去
差一點點,我希望的是按了CommandButton3_Click
會彈出msgbox提示我選了多少個檔,並選yes 運行CommandButton3_Click的程式
選NO沒反應,回到UserForm1

TOP

回復 12# marco2000


請於開始之 Private Sub CommandButton3_Click()

與 ThisWorkbook.Sheets(1).UsedRange.Clear

兩行中間插入底下的判斷式,試看看。

sn = UserForm1.ListBox2.ListCount
If sn = 0 Then
    MsgBox "並沒有選到檔案", vbCritical + vbOKOnly, "請重選"
    Exit Sub
Else
    If MsgBox("選了 " & sn & " 個檔案,是否確定要執行?", vbQuestion + vbYesNo, "請確認") = vbNo Then Exit Sub
End If
[b]Kubi[/b]

TOP

回復  marco2000


請於開始之 Private Sub CommandButton3_Click()

與 ThisWorkbook.Sheets(1).Use ...
Kubi 發表於 2014-2-18 19:53


試了,全對
我就是想要這樣,很感激你的一整天幫助:D

TOP

回復 13# Kubi
  1.     ThisWorkbook.Sheets(1).UsedRange.Clear
  2.     lb2 = UserForm1.ListBox2.ListCount
  3.    
  4.     rr = 7
  5.     For c = 1 To lb2
  6.         text1sl = UserForm1.ListBox2.List(c - 1)                        'for copy content
  7.         pp = rr + 2
  8.         kk = checkrow
  9.         arn = "C8" & ":" & "Z" & kk
  10.         ActiveWorkbook.Worksheets(text1sl).Range(arn).Copy
  11.         rrn = "B" & rr
  12.         ThisWorkbook.Sheets(1).Range(rrn).PasteSpecial
  13.         rr = rr + kk - 5
  14.         
  15.         arn2 = "A" & pp & ":" & "A" & (rr - 3)                          'for fill "A" column
  16.         ThisWorkbook.Sheets(1).Range(arn2) = ActiveWorkbook.Worksheets(text1sl).Cells(8, 3)
  17.     Next c
  18.    
複製代碼
大大你看得明嗎?
可以解釋一下嗎?

TOP

回復 15# marco2000

大概是說從作用中活頁簿內,依序從清單方塊(ListBox2)內選單所有列示的工作表名稱,循環複製該工作表C~Z欄範圍內的資料,至本活頁簿內相同工作表名稱的B欄內。

因不是原著也沒有原檔案可參照,可能會有些失準,最好是找到原著,請他來解釋較妥。
[b]Kubi[/b]

TOP

回復 16# Kubi


謝謝你,我知道有什麼用,但看不明程序代碼
因為我想進行修改,但看不明白代碼,以致更改不到

TOP

rr = 7                                           rr=7是什麼意思?
    For c = 1 To lb2                             這個是listbox2的檔案
        text1sl = UserForm1.ListBox2.List(c - 1)                         text1sl 是什麼
        pp = rr + 2                                         
        kk = checkrow                                   檢查橫例??
        arn = "C8" & ":" & "Z" & kk                                   arn是有什麼用?":"是用來連接?
        ActiveWorkbook.Worksheets(text1sl).Range(arn).Copy
        rrn = "B" & rr                                                                 B??
        ThisWorkbook.Sheets(1).Range(rrn).PasteSpecial
        rr = rr + kk - 5                                                   
        
        arn2 = "A" & pp & ":" & "A" & (rr - 3)                          'for fill "A" column
        ThisWorkbook.Sheets(1).Range(arn2) = ActiveWorkbook.Worksheets(text1sl).Cells(8, 3)

TOP

回復 17# marco2000
謝謝你,我知道有什麼用,但看不明程序代碼
因為我想進行修改,但看不明白代碼,以致更改不到

羅馬不是一天造成的,告訴你代碼是什麼意義,你也不見得就會進行修改
老生常談: 你不懂的程式碼可在vba視窗中的說明暸解,可複製它的範例
          多看多練習,真有疑問再發問不遲

如圖滑鼠選取文字, 後按 F1說明鍵

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 18# marco2000

版大不懂的地方都指向變數名稱上,變數名稱可隨意命名(但需避開VBA的關鍵字),
變數只是個容器,可裝載所需的資訊,並可隨時更改容器內的資訊來做有效的運用。

若要完全了解變數如何運作,除了GBKEE超級版主提出的方法之外,建議去買本 Excel VBA 基本教科書來研究吧。
[b]Kubi[/b]

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題