標題:
[發問]
關於"將運算結果傳至特定工作表"的問題
[打印本頁]
作者:
yagami12th
時間:
2012-12-9 21:23
標題:
關於不同工作表資料互相傳遞的問題
想請教各位大家關於"不同工作表資料互相傳遞"的問題,以表1做說明:
假設今天是
1/3
,今天已經在A到G有資料的最後一欄做好資料了,要把該工作表的A欄,B欄,D欄,F欄,G欄的最後一欄的資料,
抓到"工作表2"A欄,B欄,C欄,D欄,E欄的最後一欄,來完成1/3的數據更新。
工作表1
A B C D E F G
日期 最高價 最低價 成交量 高-低 平均價格 平均成交量
1/1 8000 7900 1000 100 7500 800
1/2 9000 8000 900 250 7000 750
1/3 9500 8500 750 150 7400 950
工作表2
A B C D E
日期 最高價 成交量 平均價格 平均成交量
1/1 8000 1000 7500 800
1/2 9000 900 7000 750
-----------------------------------------------------------------------------------------------------------
因為每一天的A到G欄的最後一列都會往下新增,所以不會每天都一樣,想不出來如何代入Array裡用resize指令,所以想請教大家,先謝謝了。
作者:
Hsieh
時間:
2012-12-9 21:39
回復
1#
yagami12th
Sub ex()
With 工作表1
r = .Cells(.Rows.Count, 1).End(xlUp).Row
工作表2.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = _
Array(.Cells(r, "A").Value, .Cells(r, "B").Value, .Cells(r, "D").Value, .Cells(r, "F").Value, .Cells(r, "G").Value)
End With
End Sub
複製代碼
作者:
yagami12th
時間:
2012-12-9 21:47
回復
2#
Hsieh
謝謝H大,本來想先宣告幾個變數,然後用set rng加上offset(0)去找"用到的欄位"的最後一格,放入幾個變數,再放到array裡頭,
會讓程式碼會寫的很長,學習到了新用法,謝謝。
作者:
yagami12th
時間:
2012-12-9 22:19
回復
2#
Hsieh
回H大,
這兩行程式碼一直維持在紅字的狀態,不知出了什麼問題,能不能幫我看看:
工作表2.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5) = _
Array(.Cells(r, "A").Value, .Cells(r, "B").Value, .Cells(r, "D").Value, .Cells(r, "F").Value, .Cells(r, "G").Value)
另外
r = .Cells(.Rows.Count, 1).End(xlUp).Row <<<r直接宣告成integer或long會影響到後面的部份嗎
作者:
yagami12th
時間:
2012-12-9 23:00
回復
2#
Hsieh
謝謝H大的教學,還有感謝之前GBKEE大的教學,才能融匯貫通程式碼,稍微改了一下,很順利成功,程式碼如下:
Sub ex1()
Dim r
Dim Ar()
Dim rng As Range
With Sheets("工作表1")
r = .Cells(.Rows.Count, 1).End(xlUp).Row '因為有這行設定的關係,可以省下很多時間
Ar = Array(.Cells(r, "A").Text, .Cells(r, "C").Value, .Cells(r, "E").Value, .Cells(r, "G").Value)
End With
With Sheets("工作表2")
Set rng = .Range("A" & Rows.Count).End(xlUp)
rng.Offset(1).Resize(1, 4) = Ar
End With
End Sub
作者:
yagami12th
時間:
2012-12-10 00:53
標題:
關於"將運算結果傳至特定工作表"的問題
感謝H大的教學,前面不同工作表資料互相傳遞的問題已經解決,將運算結果要傳送到其他sheet一直變成零,抓不出問題。
想請教的問題如下
以表1做說明:
假設今天是1/3,今天已經在A到G有資料的最後一欄做好資料了,要把該工作表的A欄,B欄,D欄,F欄,G欄的最後一欄的資料,
抓到"工作表2"A欄,B欄,C欄,D欄,E欄的最後一欄,來完成1/3的數據更新後。
在"工作表2"的E欄的最後一格,運算結果為(小數點格式或整數格式),抓到"工作表3"的f3欄,用等於的方式寫不出來,用複製貼上
的好像比較容易,但是速度比較慢的感覺。
工作表1
A B C D E F G
日期 最高價 最低價 成交量 高-低 平均價格 平均成交量
1/1 8000 7900 1000 100 7500 800
1/2 9000 8000 900 250 7000 750
1/3 9500 8500 750 150 7400 950
工作表2
A B C D E
日期 最高價 成交量 平均價格 平均成交量
1/1 8000 1000 7500 800
1/2 9000 900 7000 750
1/3 9500 750 7400 950
作者:
GBKEE
時間:
2012-12-10 08:07
本帖最後由 GBKEE 於 2012-12-10 08:22 編輯
回復
4#
yagami12th
Integer 資料型態
Integer 變數係以範圍為 -32,768 到 32,767 之 16 位元 (2 個位元組) 數字的形式儲存。Integer 的型態宣告字元是百分比符號(%)。
您可以用 Integer 變數來表示列舉的值。列舉值可代表一個唯一的整數,並具有其特殊意義,可讓您在已知的選項中很快做出選擇。例如,black = 0,white = 1 等等。較好的程式做法是使用 Const 陳列式將每個列舉值定義成常數。
複製代碼
Long 資料型態
Long (長整數)變數係以範圍從 -2,147,483,648 到 2,147,483,647 之 32 位元 (4 個位元組) 有號數字形式儲存。Long 的型態宣告字元為 &。
複製代碼
Dim r As Integer
r = .Cells(.Rows.Count, 1).End(xlUp).Row
如 r > 32,767 會是 "執行階段錯誤 6: 溢位"
複製代碼
回復
6#
yagami12th
5#的程式碼不是可以嗎?
作者:
yagami12th
時間:
2012-12-10 08:49
回復
7#
GBKEE
回GBKEE大,因為沒辨法順利執行,我先用複制貼上的方法好了,因為昨天一直想用等於來做,所以卡關。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)