彰化一整天的論壇

 找回密碼
 立即註冊
查看: 429|回復: 9

Shift問題

[複製鏈接]
發表於 2019-12-12 15:04:31 | 顯示全部樓層 |閱讀模式
老師您好,
有個關於如何使用 資料shift後取代原有的資料的VBA撰寫

1. 首先我先將原始資料shift(同減B4)  如下圖


2. 後續我將 shift後的值取代 原始資料 (如下圖)


呈現.PNG
shift.PNG
回復

使用道具 舉報

發表於 2019-12-12 15:21:16 | 顯示全部樓層
您好,
    麻煩上傳檔案,請問同減B4,B4是那一個數字,因為圖片看不到B4儲存格.
還有您的shift是做什麼動作,我看不太出來。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-12-12 21:02:18 | 顯示全部樓層
老師您好,不好意思 我截圖沒截好 ,B4指的是儲存格位置,數值為100,而shift是指順序1~9同減B4儲存格(100)後,所產生出來的值。

而產生出來的值,可以取代圖中的原始資料。
節圖.PNG
回復 支持 反對

使用道具 舉報

發表於 2019-12-13 09:40:54 | 顯示全部樓層
tango 發表於 2019-12-12 21:02
老師您好,不好意思 我截圖沒截好 ,B4指的是儲存格位置,數值為100,而shift是指順序1~9同減B4儲存格(100) ...

您好,
      這個用公式就可以做出來,為什麼還要用VBA。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-12-13 10:07:40 | 顯示全部樓層
老師您好,因為我想使用一個button鍵
讓每次資料進來後都會根據第一個值(順序1),做同減的動作,然後取代原始資料
做同減的部分,我使用公式E4=B4-$B$4, 然後再對Eˋ4做一個下拉動作(E5-E12都參照Eˋˋ4公式)

不過我不清楚怎麼讓shift出來的值,去取代原始的值,因此才想是否能透過VBA去撰寫
回復 支持 反對

使用道具 舉報

發表於 2019-12-13 10:16:16 | 顯示全部樓層
tango 發表於 2019-12-13 10:07
老師您好,因為我想使用一個button鍵
讓每次資料進來後都會根據第一個值(順序1),做同減的動作,然後取代原 ...

您好,
    我瞭解了,您可以先寫出您知道的部分,上傳檔案後,我再幫您看那裡要修正。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-12-13 10:37:55 | 顯示全部樓層
老師您好,如附件

shift.xlsm

19.68 KB, 下載次數: 47

回復 支持 反對

使用道具 舉報

發表於 2019-12-13 11:02:24 | 顯示全部樓層
tango 發表於 2019-12-13 10:37
老師您好,如附件

您好,
    因為您沒有寫任何程式碼,所以我用錄製巨集的方法來解給您看。
  1. Sub 巨集1()
  2. '
  3. ' 巨集1 巨集
  4. '

  5. '
  6.     Range("C4").Select
  7.     ActiveCell.FormulaR1C1 = "=RC[-1]-R4C[-1]"
  8.     Range("C4").Select
  9.     Selection.AutoFill Destination:=Range("C4:C12")
  10.     Range("C4:C12").Select
  11.     Selection.Copy
  12.     Range("B4").Select
  13.     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  14.         :=False, Transpose:=False
  15.     Range("C4:C12").Select
  16.     Application.CutCopyMode = False
  17.     Selection.ClearContents
  18.      Range("C4").Select
  19. End Sub

  20. Private Sub CommandButton1_Click()
  21.     Call 巨集1
  22. End Sub
複製代碼


shift_答案.xlsm

24.07 KB, 下載次數: 0

售價: 1 金錢  [記錄]  [購買]

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2019-12-13 13:32:52 | 顯示全部樓層
老師您好,請教一個問題哦~
假設如果如果不是同減B4的話,可能為其它儲存格(ex:可能為G4)
在程式上修改 以下也有所不同?
ActiveCell.FormulaR1C1 = "=RC[-1]-R4C[-1]"??

有嘗試修改, 不過好像會出錯1004
回復 支持 反對

使用道具 舉報

發表於 2019-12-13 14:26:08 | 顯示全部樓層
本帖最後由 imingho 於 2019-12-13 14:32 編輯
tango 發表於 2019-12-13 13:32
老師您好,請教一個問題哦~
假設如果如果不是同減B4的話,可能為其它儲存格(ex:可能為G4)
在程式上修改 以 ...

您好,
     您要知道RC的用法才能正確使用。
RC是代表的分別為Row(列)Column(欄),負的是往左,正的是往右,用中括號表示移到的儲存格數,
前面的4是表示$字號
C4是公式所在位置,所以RC[-1]-R4C[-1]就是B4-B$4
所以您的G4就要改成
  1. ActiveCell.FormulaR1C1 = "=RC[-1]-R4C[4]"
複製代碼



回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  

GMT+8, 2020-9-27 03:45 , Processed in 0.151161 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表