返回列表 上一主題 發帖

請教excel 陣列問題

回復 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

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

TOP

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

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

回復 11# lionliu
是這樣嗎?
  1. R = Rng.Cells(1, 8).Value
  2.             strcomma = WorksheetFunction.Find(",", R) '修改位置 H欄,
  3.             lenstr = Len(R)
  4.             dsc = Right(R, lenstr - strcomma)
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 13# lionliu
參考看看
  1. Dim R As String         '型態為字串

  2. '這裡也要修改 當作用中的工作表是工作表1時 會有 "型態不符合的錯誤
  3. '.Cells(i, 4) = Cells(i, 2) * Cells(i, 3)        '修改位置 D欄由計算求值

  4. .Cells(i, 4) = .Cells(i, 2) * .Cells(i, 3)                             '修改位置 D欄由計算求值
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 15# lionliu
看看位置的差異
  1. MsgBox rng.Cells(1, 8).Address  '為何不是
  2. MsgBox rng.Cells(i, 8).Address
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 願要大、志要堅、氣要柔、心要細。
返回列表 上一主題