Board logo

標題: [發問] 請教微調按鈕在VBA裡的寫法 [打印本頁]

作者: 悅風    時間: 2015-10-14 11:46     標題: 請教微調按鈕在VBA裡的寫法

不知道是否可以寫一個VBA是在第三分頁的微調按鈕
每往上微調執行一次之後,會自動把第三分頁的H4~H10貼上值對應到第二分頁的B欄到H欄下方
隨資料變動跟著貼上值的迴圈,且對應到正確的編號後方儲存格

煩請前輩們教學,之後學起來希望可以同理應用在許多資料分析上
作者: 准提部林    時間: 2015-10-14 18:00

1.公式法:
B2:
=SUM(N(OFFSET(Sheet1!$A$1,MATCH($A2,Sheet1!$A:$A,)-1,MATCH(B$1&"/close",Sheet1!$1:$1,)-{6,1}))*{-1,1})
 
2.VBA:迴圈一次跑完
Sub T1014_1()
Dim R&, xR As Range, X&, j&
With Sheets("Sheet2")
   Set xR = .[B1]
   R = .Cells(Rows.Count, 1).End(xlUp).Row - 1
   If R <= 0 Then Exit Sub
End With
 
With Sheets("Sheet3")
   X = .Cells(Rows.Count, 1).End(xlUp).Row - 3
   If X <= 0 Then Exit Sub
   For j = 1 To R
     .[A2] = j
     Set xR = xR(2)
     xR.Resize(1, X) = Application.Transpose(.[H4].Resize(X))
   Next
End With
End Sub
作者: 悅風    時間: 2015-10-15 02:06

試跑了一下,VBA與儲存格公式,都能達到我要的需求
而且自己稍做修改都可以應用在其他資料分析上面
准提部林前輩,感謝你再次回答我的問題
雖然程式碼只能大概看得懂如何運行的,先抱著感恩的心收下了
稍做研究了一會程式碼,第二段程式碼有些不懂的地方,想多做了解
不知是否可以解釋一下這段程式的邏輯,好釐清與確定我自己的理解有沒有錯誤
With Sheets("Sheet3")
   X = .Cells(Rows.Count, 1).End(xlUp).Row - 3
   If X <= 0 Then Exit Sub
   For j = 1 To R
     .[A2] = j
     Set xR = xR(2)
     xR.Resize(1, X) = Application.Transpose(.[H4].Resize(X))
作者: 准提部林    時間: 2015-10-15 09:40

本帖最後由 准提部林 於 2015-10-15 09:43 編輯

回復 3# 悅風


X = .Cells(Rows.Count, 1).End(xlUp).Row - 3  
_〔日期〕筆數,原應減2,但須至少2筆以上才能算上下差值,故多減1 
 
If X <= 0 Then Exit Sub
_日期少於2個.跳出 

For j = 1 To R
_以 Sheet2 編號個數跑迴圈 

.[A2] = j
_在A2填入迴圈值,相當于使用微調按鈕連按,使公式自動變換計算值 

Set xR = xR(2)
_要轉貼差值的位置,起始格為 Sheet2 的B1,跑迴圈時自動〔往下〕移一格,即B2.B3....... 

xR.Resize(1, X) = Application.Transpose(.[H4].Resize(X))
_以 xR 為基準,向右抓 X 欄數的範圍,填入H欄差值 
_因由〔直轉橫〕,必須使用 Transpose 〔轉置〕 
作者: 悅風    時間: 2015-10-17 07:55

感謝前輩教導,看了邏輯解釋懂了許多,也學了許多
用法可以如此清晰與靈活,希望以後我也能做到,謝指教




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