昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-10-16, 05:17:09
世界展望會助學計劃
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  請問不同檔案的資料複製
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 2 向下 列印
作者 主題: 請問不同檔案的資料複製  (閱讀 3524 次)
cjc
訪客


電子郵件
請問不同檔案的資料複製
« 於: 2005-04-11, 10:22:45 »

各位好,我有兩個檔案:

檔案 A :
A    B     C     D     E
1 物品 公司1 公司2  公司3  公司4
2 001 5    10
3 002       7     12    22

檔案 B :
D      E...........K
1 公司1 001   15
2 公司2 001   10
2 公司2 002   7
3 公司3 002   12
4 公司4 002   22

由於物品種類有上百種,可否將 A 檔案的資料(15,10,7,12,22....)自動取代或填入 B 檔案呢?
謝謝
« 最後編輯時間: 2005-04-11, 10:31:11 由 小誌 » 已記錄
cjc
訪客


電子郵件
Re: 請問不同檔案的資料複製
« 回覆文章 #1 於: 2005-04-11, 10:24:45 »

真抱歉,不知為何文章貼出來會這樣 Embarrassed
回覆:
因為你加太多空白了 >:
不知如何加入表格代碼來排版的話,請先到新手試驗區試驗一下OK
不然你也先預覽一下
« 最後編輯時間: 2005-04-11, 10:34:29 由 小誌 » 已記錄
cjc
訪客


電子郵件
Re: 請問不同檔案的資料複製
« 回覆文章 #2 於: 2005-04-11, 11:34:40 »

真抱歉,我把它做成表格,應該比較清楚了 Smiley
ABCDE
1物品公司1公司2公司3公司4
20011510
300271222


CD...K
1公司100115
2公司200110
3公司20027
4公司300212
5公司400222
已記錄
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 請問不同檔案的資料複製
« 回覆文章 #3 於: 2005-04-11, 23:25:54 »

1. 以下範例,兩個檔案需已開啟
2. 檔案名稱依實際情形修改

Sub zz()
Set a = Workbooks("檔案A.xls").Sheets(1)
Set b = Workbooks("檔案B.xls").Sheets(1)
lastrow = a.[A1].End(xlDown).Row
lastcol = a.[A1].End(xlToRight).Column
rb = 1
For c = 2 To lastcol
  For r = 2 To lastrow
    If a.Cells(r, c) <> "" Then
      b.Cells(rb, 3) = a.Cells(1, c)
      b.Cells(rb, 4) = a.Cells(r, 1)
      b.Cells(rb, 11) = a.Cells(r, c)
      rb = rb + 1
    End If
  Next r
Next c
End Sub
已記錄

oobird
凸槌的木工
論壇維護群
*
離線 離線

文章: 4429


Re: 請問不同檔案的資料複製
« 回覆文章 #4 於: 2005-04-12, 08:21:38 »

lenchou兄:很好的變量範例。小弟不懂後面的rb = rb + 1,及Next r、Next c與 只有寫"Next "的差別,能啟蒙一下嗎?謝謝。

已記錄

結廬待慧君
cjc
訪客


電子郵件
Re: 請問不同檔案的資料複製
« 回覆文章 #5 於: 2005-04-12, 10:52:21 »

感謝 lenchou兄回覆 Smiley
不過由於檔案B的 C ,D 列資料已經存在,只需將 K 列的空白資料填入,須要怎麼修改呢?
謝謝!
已記錄
yem
高中生
*
離線 離線

文章: 110



Re: 請問不同檔案的資料複製
« 回覆文章 #6 於: 2005-04-12, 11:49:55 »

感謝 lenchou兄回覆 Smiley
不過由於檔案B的 C ,D 列已經存在,只需將 K 列的空白資料填入,須要怎麼修改呢?
謝謝!

C,D資料已存在,
這麼好啊~~
那用公式更方便了

K1公式
=INDIRECT("[Book1]Sheet1!R"&MATCH(D1,[Book1]Sheet1!$A$1:$A$11,0)&"C" &MATCH(C1,[Book1]Sheet1!$A$1:$E$1,0),0)



公式中:
BooK1換成檔案A的名字,
$A$1:$A$11,及$A$1:$E$1就要視真正的資料改變範圍長度了
已記錄

What doesn't kill you will only make you stronger
cjc
訪客


電子郵件
Re: 請問不同檔案的資料複製
« 回覆文章 #7 於: 2005-04-12, 12:52:36 »

感謝 yem 兄回覆 Smiley
我將公式套入k1-k5,所得到的答案都是一樣 Cry
如果有上千筆的資料,可以將公式一次套入嗎?
已記錄
yem
高中生
*
離線 離線

文章: 110



Re: 請問不同檔案的資料複製
« 回覆文章 #8 於: 2005-04-12, 13:38:48 »

感謝 yem 兄回覆 Smiley
我將公式套入k1-k5,所得到的答案都是一樣 Cry
如果有上千筆的資料,可以將公式一次套入嗎?

這是k1的公式,k2~k5要從k1往下拉哦!! Smiley
已記錄

What doesn't kill you will only make you stronger
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 請問不同檔案的資料複製
« 回覆文章 #9 於: 2005-04-12, 23:41:45 »

lenchou兄:很好的變量範例。小弟不懂後面的rb = rb + 1,及Next r、Next c與 只有寫"Next "的差別,能啟蒙一下嗎?謝謝。

就是照制式的用法而已...

節錄自VBA輔助說明 --

一. For...Next 陳述式

以特定次數來重複執行一段陳述式。

語法
For counter = start To end [Step step]
[其他陳述式]
[Exit For]
[其他陳述式]

Next [counter]

附註 如果您省略 Next 陳述式中的計數器,仍可以執行迴圈,但如果 Next 陳述式比它相對應的 For 陳述式先執行,則會產生錯誤。

二. For Each...Next 陳述式

針對一個陣列或集合中的所有元素,重複執行一段陳述式。

語法
For Each element In collection
[其他陳述式]
[Exit For]
[其他陳述式]

Next [element]

附註 如果您省略 Next 陳述式中的元素,仍可以執行迴圈,但如果 Next 陳述式比它相對應的 For 陳述式先執行,則會產生錯誤。


我倒還沒遇過 "Next 陳述式比它相對應的 For 陳述式先執行" 而發生錯誤的情形,
所以我一向只在 For...Next 後面加 counter ,以和 For Each...Next 陳述式有所區別而已,如同Help所說:除非遇到錯誤,否則加與不加都沒差。
如果要說加有什麼好處,大概就是不易出錯,而且如此例中使用多個 For ... Next 的巢狀迴圈時,較容易分辨哪個是哪個。
使程式碼較易於閱讀,是個好習慣。

把輔助說明有的東西拿來發教學文章,如果沒有值得一書的心得,沒什麼意思對吧?

忘了說 rb = rb + 1 的意思...
rb 是做為 B檔案列號的變數,一列一列接著往下填入資料。
A檔案已有 For ... Next 的計數變量做為欄列號,
B檔案的欄號是固定,而列號與 A檔不同,所以另設變數。
« 最後編輯時間: 2005-04-12, 23:46:32 由 leonchou » 已記錄

頁: [1] 2 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  

本頁花了 0.13 秒, 以及 21 次的資料庫查詢.