返回列表 上一主題 發帖

請教excel 陣列問題

請教excel 陣列問題

各位大哥:
小弟有一個excel陣列問題想要將工作表1,轉到工作表2。
並將品名重排但是一直出問題。
還有是否可以不辨東工作表1就直接產生工作表2內容。
活頁簿1.rar (17 KB)
lionliu

回復 1# lionliu
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, i As Integer, Msg As Boolean
  4.     Set Rng = Sheets(1).[A2]
  5.     With Sheets(2)
  6.         .UsedRange.Clear              '.UsedRange的範圍 < .Cells的範圍,處裡速度會快些
  7.         .Range("a1").Resize(, 4) = Array("Description", "Qty", "Price", "Amount") '一起給值
  8.         i = 2                          '設定起始值
  9.         Do While Rng <> ""             'Rng ="" 迴圈停止
  10.             If Msg = False Then
  11.                 .Cells(i, "A") = Rng.End(xlUp) & ": " & Rng
  12.                 i = i + 1
  13.             End If
  14.             .Cells(i, "A") = Rng.Cells(1, 2).End(xlUp) & ": " & Rng.Cells(1, 2) 'item no
  15.             .Cells(i, "B").Resize(, 3) = Rng.Cells(1, 4).Resize(, 3).Value      'qty,price, amount
  16.             .Cells(i + 1, "A") = Rng.Cells(1, 3)                                'Description
  17.             i = i + 2
  18.             Msg = False                              '設 po no 不相同
  19.             If Rng = Rng.Offset(1) Then Msg = True    'po no 相同
  20.             Set Rng = Rng.Offset(1)                  '下移一列
  21.         Loop
  22.     End With
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE
謝謝gb大哥已可以用了,現在正嘗試把它吃透。
lionliu

TOP

回復 2# GBKEE
gbkee大哥好
小弟有將資料表和巨集內容進行修正,但是因為對照資料表rng問題,
無法將所有資料過到工作表2,不知應如何修正。 活頁簿1.rar (15.68 KB)
lionliu

TOP

回復 4# lionliu
這附檔與第1帖附檔格式不一樣.請再詳述這附檔的格式.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 lionliu 於 2015-7-17 16:39 編輯

回復 5# GBKEE
不好意思,沒敘述清除
我的工作表一增加G、H欄,H只取","右邊的字串。
SHEETS(2) A欄的順序是如下,並將AMOUNT改成公式求得                                                        

         Description        Qty        Price        Amount
          po no : as123                                           'SHEETS(1)的A欄
          item no: ab11201        2        12        24      'SHEETS(1)的B欄
         FGHRT                 'SHEETS(1)的H欄 ","右邊字串  DSC                       
         acs 102 cdes                                           'SHEETS(1)的C欄
       AB3456                                                    'SHEETS(1)的G欄        
        
       item no: ab11200        23        10        230
        FGHRT                       
       zxc 2304 df                       
       AB3456                       
      
        item no: ab11203        24        10        240
        ERTT                       
        zxc 2335 df                       
        AC780F                       
不曉得說明是否清楚
lionliu

TOP

回復 5# GBKEE
附上修改後壓縮檔內有說明 活頁簿1.rar (17.14 KB)
lionliu

TOP

回復 7# lionliu
不好意思,看不出附檔的規律性,VBA寫不出來.
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 lionliu 於 2015-7-18 20:50 編輯

回復 8# GBKEE
其實是我不好意思,受到gb大哥的教導獲益良多,我會再努力去完成它
,還是要再此跟你說謝謝。我想若能克服工作表1的ROW值與工作表2的ROW對應問題即可。
lionliu

TOP

回復 9# lionliu

第2帖的程式碼
Rng 不就是 第一個工作表的Row
i  是 第二個工作表的Row
  1.   Set Rng = Sheets(1).[A2]
  2. 05.    With Sheets(2)
  3. 06.        .UsedRange.Clear              '.UsedRange的範圍 < .Cells的範圍,處裡速度會快些
  4. 07.        .Range("a1").Resize(, 4) = Array("Description", "Qty", "Price", "Amount") '一起給值
  5. 08.        i = 2                          '設定起始值
  6. 09.        Do While Rng <> ""             'Rng ="" 迴圈停止
  7. 10.            If Msg = False Then
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題