VBA的複製問題(求教)



贊助商連結


foxcat99
2002-04-12, 09:00 PM
請問VBA的複製問題
雖然這素個簡單的問題....可素偶跑了粉久....跑不出來
就是在一個.xls檔中有兩個sheet,
就是要比對兩個sheet的資料.........
目的是要使得sheet("95-2000原始資料")的第J欄得出...
首先先看到sheet("外資買賣超")的C2儲存格資料(條件是1101且199501都有),
要copy到sheet("95-2000原始資料")也符合1101且199501(E欄)的儲存格,
這個例子中也就是儲存格J3才符合....要如何使J欄的其他資料也比對成功呢???
我的程式如下...跑很久....不知哪錯囉...請高手指導指導剛入VBA的小弟...
謝謝......

Sub 比對資料()
For i = 2 To 5 Step 1
For k = 3 To 4 Step 1
For j = 3 To 8 Step 1
If Sheets("外資買賣超").Cells(i, 1) = Sheets("95-2000原始資料").Cells(j, 1) And Sheets("外資買賣超").Cells(1, k) = Sheets("95-2000原始資料").Cells(j, 5) Then
Sheets("外資買賣超").Select
Cells(i, k).Select
Selection.Copy
Sheets("95-2000原始資料").Select
Cells(j, 10).Select.Paste

End If
Next j
Next k
Next i
End Sub

贊助商連結


沙拉油
2002-04-13, 11:08 PM
以下的數值是不是你的迴圈所要求出的結果
2169
-4128
2
1903
-15967
-19
如果是的話,那麼你的問題是出現在Sheets("外資買賣超")的A2:A5被儲存成文字格式雖然A2:A5設定的是通用格式不過應該被儲存成文字格式了,建議你手動重新輸入試看看,導致於無法與Sheets("95-2000原始資料")的A3:A8相互比對,因為Sheets("95-2000原始資料")的A3:A8是數值不是文字

另外請你將這一段

Sheets("外資買賣超").Select
Cells(i, k).Select
Selection.Copy
Sheets("95-2000原始資料").Select
Cells(j, 10).Select.Paste

改成底下這樣

Sheets("95-2000原始資料").Cells(j, 10) = Sheets("外資買賣超").Cells(i, k)

不然程式好像有錯誤

cinta3344
2002-04-14, 12:28 PM
:) 你的問題我遇過好幾次了,說穿了就是excel在儲存格型態上的bug
我想你的另一個sheet的資料應該是用.csv或其他檔案轉入,雖然儲存
格寫的是general,實際上可能是string type
你試著在儲存格上點一下,游標在移到功能列可以輸入公式的地方案一下
enter,你的問題自然迎刃而解了
ps. Paste method的上曾物件是sheet,你寫錯了!

foxcat99
2002-04-16, 12:32 PM
最初由 cinta3344 發表
:) 你的問題我遇過好幾次了,說穿了就是excel在儲存格型態上的bug
我想你的另一個sheet的資料應該是用.csv或其他檔案轉入,雖然儲存
格寫的是general,實際上可能是string type
你試著在儲存格上點一下,游標在移到功能列可以輸入公式的地方案一下
enter,你的問題自然迎刃而解了
ps. Paste method的上曾物件是sheet,你寫錯了!

謝謝兩位大大的回應..........
小弟知道那邊錯了............
感激不盡.............:D
看來學VB還得加把勁........:confused: