Board logo

標題: [發問] 記錄問題 [打印本頁]

作者: donod    時間: 2020-9-24 17:39     標題: 記錄問題

檔案中,當I2的值有變動時,將E2至I2的內容記錄到Sheet2和Sheet3,Sheet2只記錄最新的,Sheet3會向下記錄全部及重新打開此檔案時,會接續記錄
當Sheet3記錄到指定行數,會向右移,繼續向下記錄
但Sheet2也會向右移及記錄,

請教大大如何改寫,使到Sheet2不會向右移記錄,謝謝!
[attach]32559[/attach]
作者: 軒云熊    時間: 2020-9-25 20:23

本帖最後由 軒云熊 於 2020-9-25 20:33 編輯

回復 1# donod
  我把變數存在Sheets(1).Cells(2, 1)儲存格 不知道是不是你要的
但寫法跟你不一樣 我也順便練習一下 有空在看看吧

javascript:;
作者: 軒云熊    時間: 2020-9-25 21:03

本帖最後由 軒云熊 於 2020-9-25 21:09 編輯

回復 1# donod

如果  只是要修改  就改這樣 但是 你的 Public i% 變數 有一個問題 就是關閉檔案後 變數會消失
覺得 Sub auto_open() 有點麻煩  所以才直接存到儲存格
     With Sheet2
     Set A = .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5)
作者: donod    時間: 2020-9-26 01:18

回復 2# 軒云熊

謝謝大大,可以了!
作者: donod    時間: 2020-9-26 01:27

有個原有的問題,Cell(I2)的數值是以import方式導入,每當導入的數值和之前的相同,也會觸發事件,
請教大大,如何避免,謝謝!
作者: 准提部林    時間: 2020-9-26 14:35

Private Sub Worksheet_Calculate()
Dim C&, xE As Range
If [i2] = Sheet2.Range("E2") Then Exit Sub
C = Sheet3.Cells(2, Columns.Count).End(xlToLeft).Column
C = Application.Ceiling(C, 6) - 5
Set xE = Sheet3.Cells(Rows.Count, C).End(xlUp)(2)
If xE.Row > 5 Then Set xE = Sheet3.Cells(2, xE.Column + 6)
Sheet2.Range("A2:E2") = [E2:I2].Value
xE.Resize(1, 5) = [E2:I2].Value
End Sub

自行研究, 超過工作表欄數會出錯..不除錯
作者: 軒云熊    時間: 2020-9-26 17:39

本帖最後由 軒云熊 於 2020-9-26 17:41 編輯

回復 5# donod
我看錯了.... ...準大給的   Sheet2.Range("A2:E2") = [E2:I2].Value 才是    Sheet2只記錄最新的  ...抱歉  >"<
作者: donod    時間: 2020-9-26 18:04

回復  donod
我看錯了.... ...準大給的   Sheet2.Range("A2:E2") = [E2:I2].Value 才是    Sheet2只記錄最 ...
軒云熊 發表於 2020-9-26 17:39

沒問題呀,也是多學一方法,謝謝軒云熊大大。只是原有的問題解決不了。
有個原有的問題,Cell(I2)的數值是以import方式導入,每當導入的數值和之前的相同,也會觸發事件,
請教大 ...
donod 發表於 2020-9-26 01:27

作者: donod    時間: 2020-9-26 18:11

Private Sub Worksheet_Calculate()
Dim C&, xE As Range
If  = Sheet2.Range("E2") Then Exit Sub
C =  ...
准提部林 發表於 2020-9-26 14:35

感謝准提部林大大,正是這個。
原有的問題如何避免?
有個原有的問題,Cell(I2)的數值是以import方式導入,每當導入的數值和之前的相同,也會觸發事件,
請教大大,如何避免,謝謝!
donod 發表於 2020-9-26 01:27

作者: 軒云熊    時間: 2020-9-26 18:12

回復 8# donod


    準大已經給你答案了 If [i2] = Sheet2.Range("E2") Then Exit Sub
我不是大大 我也是新手 我也還在學習 ...有時間就會來這裡 找題目練習  ^_^
作者: donod    時間: 2020-9-26 19:22

回復  donod


    準大已經給你答案了 If  = Sheet2.Range("E2") Then Exit Sub
我不是大大 我也是新 ...
軒云熊 發表於 2020-9-26 18:12

是呀,這兒每個問題,每個回覆,都是學習的好機會。




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