看板 Office 關於我們 聯絡資訊
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體:EXCEL 365 版本:365 各位好 VBA新手請教,因為年末要盤點要做個表格複製的VBA 但是卡在SUB的地方 一直出錯,顯示型別不符或未定義 思維是 先計算表格1的行數(總共需要印出來的小卡張數) 因為每張A4會印4張小卡所以設定pp = 4 總共需要的列印頁數就會等於行數/4 = tn 每份有41行 所以實務上會變成選擇1~41行的小卡表格 貼上第42列 重複執行到 行數X總表格數的次數 Sub 空白盤點小卡複製() Dim kk As Long '宣告kk為列數的變數 Dim tn As Integer '宣告tn為 頁數的變數 Dim i As Integer '宣告i為張貼列數變化的變數 Dim pp As Integer '宣告pp為變數 kk = Worksheets("表格1").Range("A65535").End(xlUp).Row pp = 4 tn = (kk \ pp) + 1 i = i * 41 For i = 1 To i * tn Step 1 Worksheets("小卡").Rows("1:41").Select Selection.Copy Worksheets("小卡").Rows("i:i").Paste Next 行數不會超過65535行 因為在SUB的地方直接顯示黃底,底下不知道有沒有錯誤,如果還有其他錯誤的地方 還請不吝賜教,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.166.182 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1636901810.A.6F3.html
newton41: 沒有End ? 11/14 23:49
snow12031: 有End sub 11/15 07:49
newton41: i 是什麼? 11/15 08:38
a29976137: 用range會不會比較好 11/15 19:46
kumasan123: 淺見,定義tn為整數,但tn算式結果有可能非整數? 11/15 20:13
max01060926: 我用你的程式碼下去跑 可以順利往下走 你要不要貼圖 11/15 21:30
max01060926: 或是錯誤訊息上來? 11/15 21:30
waiter337: Rows("i:i") 應該是rows(i & ":" & i) 或者rows(i) 11/15 23:00
waiter337: 然後四個dim 都先槓掉 懷疑超標 11/15 23:00
waiter337: 最後就是 有超過兩個同名的sub 不能有兩個名稱一樣 11/15 23:01
waiter337: 就算不同模組 11/15 23:01
waiter337: 還有 i 不要這樣用 改成 11/15 23:03
waiter337: j=j*41 11/15 23:03
waiter337: For i = 1 to j * tn 不然會無限跑不停 11/15 23:03
waiter337: i值超過intrger 因為i值產生自我遞迴了 可能連續放大 11/16 08:04
waiter337: 摁 無窮迴圈 For i = 1 To i * tn Step 1 11/16 08:04
waiter337: 後面的 i * tn 印象是每迴圈一次 重算一次 11/16 08:05
waiter337: 更正 不會產生遞迴 此種寫法 沒有重置迴圈 請參考其他 11/16 09:29
waiter337: 問題 11/16 09:29
snow12031: ->K大 了解 我會再貼圖上來 ->W大我會再試試看感謝 11/16 15:21
snow12031: https://imgur.com/tWbSiPK 依照上述意見稍微修改 11/16 17:53
snow12031: 但是錯誤訊息變成此處需要物件 需要改kk變數類型還是? 11/16 17:54
snow12031: 先前未加Set在前也是同樣錯誤 還請各位不吝指教 11/16 17:54
waiter337: kk 不用set 11/16 18:54