Board logo

標題: [發問] 指定儲存格update 到orderlist [打印本頁]

作者: eg0802    時間: 2013-5-14 15:17     標題: 指定儲存格update 到orderlist

本帖最後由 eg0802 於 2013-5-14 15:18 編輯

[attach]14974[/attach]各位版神......小弟最近遇到難題 懇請大大幫忙!!  
需求如下   JZT-BC 總表 裡面包含很多工作表   我需要把上色的部分(ETD / ETA / 總件數 / 總金額) update 至 orderlist.   小弟對VBA不是很懂,懇求大大幫忙!!! Orz.....
作者: GBKEE    時間: 2013-5-14 17:56

回復 1# eg0802
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Sh As Worksheet, AR(1 To 2), Rng As Range, R  As Integer, i As Integer
  4.     AR(1) = Array("H", "I", "L", "M")                    'summary-2014 中的欄位
  5.     For Each Sh In Workbooks("JZT BC-總表.xlsx").Sheets  'JZT BC-總表.xlsx活頁簿 Sheets(物件集合)
  6.         With Sh
  7.            With .[A:A].Find("Total", LOOKAT:=xlWhole)    '尋找A欄中的"Total"
  8.                 .Cells(1, "B").Name = "QTY"              '位於B欄的存存格命名
  9.                 .Cells(1, "I").Name = "TotalPrice"       '位於I欄的存存格命名
  10.            End With
  11.            AR(2) = Array(.[QTY], .[TotalPrice], .[B24], .[C25])
  12.            With Workbooks("Order List 2014_0502.xls").Sheets("'summary-2014")
  13.                 R = .Cells(.Rows.Count, "H").End(xlUp).Offset(1).Row 'H欄:檔案底部往上有資料下一列的列號
  14.                 '*** Order List 2014_0502.xls H欄中 10:65536 間還有資料請清除  ***
  15.                 For i = 0 To 3
  16.                     .Range(AR(1)(i) & R) = AR(2)(i)
  17.                 Next
  18.            End With
  19.         End With
  20.     Next
  21. End Sub
複製代碼

作者: eg0802    時間: 2013-5-14 22:53

回復 2# GBKEE


    G大...不行耶....不知道是不是小弟用不對 我有上傳圖片請大大幫忙看一下~~感恩
[attach]14982[/attach]
作者: eg0802    時間: 2013-5-14 23:04

回復 2# GBKEE


    抱歉G大  不知為何圖上傳不了....跑了您寫的出現以下錯誤信息

         執行階段錯誤'9
         陣列索引超出範圍
作者: Hsieh    時間: 2013-5-14 23:36

回復 4# eg0802
Order List 2014_0502的A欄編號不知有何意義?
兩個檔案放在同一個資料夾目錄中
JZT BC-總表活頁簿由程式碼開啟,不要事先開啟
執行
Order List 2014_0502活頁簿內模組程式碼
  1. Sub Update_Data()
  2. Dim Ar()
  3. fs = ThisWorkbook.Path & "\JZT BC-總表.xlsx"
  4. With Workbooks.Open(fs)
  5.   For Each sh In .Sheets
  6.      With sh
  7.      a = .Columns("A").Find("Total", lookat:=xlWhole).Offset(, 1).Value
  8.      b = .Columns("H").Find("Total amount", lookat:=xlWhole).Offset(, 1).Value
  9.      c = .Columns("A").Find("DELIVERY:  ", lookat:=xlWhole).Offset(, 1).Value
  10.      d = .Columns("A").Find("IN WAREHOUSE DATE: ", lookat:=xlWhole).Offset(, 2).Value
  11.      ReDim Preserve Ar(s)
  12.      Ar(s) = Array(CStr(.Name), "", "", a, b, "", "", c, d)
  13.      s = s + 1
  14.      End With
  15.   Next
  16.   .Close 0
  17. End With
  18. If s > 0 Then ThisWorkbook.Sheets("summary-2014").[E10].Resize(s, 9) = Application.Transpose(Application.Transpose(Ar))
  19. End Sub
複製代碼
[attach]14985[/attach]
作者: eg0802    時間: 2013-5-14 23:52

回復 5# Hsieh


    成功了!!! 感謝H大  A欄編號沒別的意思 就是一直順著往下編而已  只是有時候開會的時候方便討論講編號而已!!  感恩感恩ORZ...
作者: GBKEE    時間: 2013-5-15 06:53

回復 4# eg0802
兩個檔案都是開啟下執行的嗎?
執行階段錯誤'9  在程式的哪一行程式碼?




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)