選取儲存格,Insert Shift:=xlDown (錯誤)
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
選取儲存格,Insert Shift:=xlDown (錯誤)
本帖最後由 hugh0620 於 2019-6-15 14:06 編輯
Dear 大大
又是遇到一個撰寫過程中,OK!!
但在收尾測試時,又遇到一個錯誤。 重複檢查了幾次,還是抓不出Bug!!
上來求助!!
To Hugh view_shipping_orders (3)0615_工具_範例.rar (412.27 KB)
用這種方式寫,是可以達到結果,但應該用array(陣列)的方式寫,應該比較方便。
個人VBA寫法:
1、將PO複製到另一欄位上。
2、用資料剖析,將儲存格中多PO拆出來。
3、用雙迴圈方式+儲存格複製插入貼上的方式,完成資料處理。- Private Sub CommandButton1_Click()
- Application.ScreenUpdating = True '執行巨集時,螢幕不更新
- Dim AA1 As Integer
- Dim AA2 As Integer
- Dim AA3 As Integer
- Dim I As Integer
- Dim J As Integer
- 工作表1.Range("T1:DZ65536").ClearContents '清除資料
- ''複製
- 工作表1.Range("C10").Select
- 工作表1.Range(Selection, Selection.End(xlDown)).Select
- Selection.Copy
- 工作表1.Range("T10").Select
- ActiveSheet.Paste
- 工作表1.Range("V10").Select
- ActiveSheet.Paste
- ' '資料剖析
- '工作表1.Range(Selection, Selection.End(xlDown)).Select
- Application.CutCopyMode = False
- Selection.TextToColumns Destination:=Range("V10"), DataType:=xlDelimited, _
- TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
- Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
- :=Array(1, 1), TrailingMinusNumbers:=True
- AA1 = 工作表1.Range("V65536").End(xlUp).Row '跑筆數迴圈
- '=======確認資料剖析後,筆數=========
- For I = 11 To AA1
- 工作表1.Range("U" & I) = Application.CountA(工作表1.Range("U" & I & ":DZ" & I))
-
- Next
- '=======================================
- For I = AA1 To 11 Step -1 '由最後一筆,往上逐步拆PO
- AA2 = 工作表1.Range("U" & I)
- If AA2 <> 1 Then
-
- '====插入切割後的PO資料=====
-
- 工作表1.Range("B" & I & ":DZ" & I).Select
- Selection.Copy
- 工作表1.Range("B" & I & ":DZ" & I + AA2 - 2).Select
-
- Selection.Insert Shift:=xlDown '錯誤點!!
-
- '==========================
-
- '===Purchase Order 欄位資料,逐筆填回======
- AA3 = 0
- For J = I To I + AA2 - 1
- 工作表1.Range("C" & J) = 工作表1.Cells(I, 22 + AA3)
- AA3 = AA3 + 1
- Next J
-
- End If
-
- Next I
- 工作表1.Range("V1:DZ65536").ClearContents
- Application.ScreenUpdating = True
- End Sub
複製代碼 |
|
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
2#
發表於 2019-6-16 10:34
| 只看該作者
|
|
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
3#
發表於 2019-6-17 09:09
| 只看該作者
本帖最後由 hugh0620 於 2019-6-17 09:18 編輯
回復 2# 准提部林
Dear 大大
感謝你的回覆,解決了資料剖析後,文字轉數字後,第1個字碼為0時會不見得問題。
只是,我的困擾不是在資料剖析上。
而是在將資料重整,請看一下原文程式碼 第52列"Selection.Insert Shift:=xlDown '錯誤點!!"
在檔案中有3個Sheet、工具、結果、範例
範例:同事的需求。
結果:僅是分析資料。原始資料為514筆,拆PO後會有848筆。(僅是用來比對跑完後的比數是否為848筆)
工具:用程式碼跑完後的結果。
以上補充說明。 |
|
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
4#
發表於 2019-6-17 10:27
| 只看該作者
本帖最後由 hugh0620 於 2019-6-17 10:28 編輯
回復 2# 准提部林
Xl0000359_結果測試_OK.rar (64.47 KB)
上文筆誤:原始資料為514筆,拆PO後會有848筆。 正確是原始資料為513筆。
利用大大的版本,加上我原本的程式碼,已經可以使用。
目的:如果當列的PO>1時,要將PO拆成多列。(如PO=4,要拆成4列資料。)
EX、 PO=1,2,3,4 是在一個儲存格
變成 1
2
3
4
我的程式碼應該還是有指定變數的問題,是否可以幫忙確認,需要如何調整才能避免BUG!! |
|
|
學習才能提升自己
|
|
|
|
|
- 帖子
- 2848
- 主題
- 10
- 精華
- 0
- 積分
- 2903
- 點名
- 0
- 作業系統
- 〔略〕
- 軟體版本
- 〔略〕
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 〔略〕
- 註冊時間
- 2013-5-13
- 最後登錄
- 2026-7-25
|
5#
發表於 2019-6-17 19:57
| 只看該作者
|
|
|
|
|
|
|