返回列表 上一主題 發帖

[發問] 公式轉化為程式語法。

[發問] 公式轉化為程式語法。

本帖最後由 papaya 於 2017-11-19 19:34 編輯
  1. Private Sub CommandButton1_Click()
  2. '[A2] = "=Max(D:D)"
  3. '[A2] = [A2].Value
  4. [A2] = Application.Max(Range("D:D"))
  5.   [B1] = [I2]
  6.   [B2] = [D2]
  7.   [C2] = "=INDEX(D:D,MATCH(A2,I:I,))"
  8.   [C2] = [C2].Value
  9.   [C1] = "=SUMIF(OFFSET($I$1,C2-B2+1,1,,4),A1,OFFSET($D$1,C2-B2+1,1,,4))"
  10.   [C1] = [C1].Value

  11. End Sub
複製代碼
A1=人工填入

EX︰
'[A2] = "=Max(D:D)"
'[A2] = [A2].Value
可轉化為
[A2] = Application.Max(Range("D:D"))

請問︰
[C2]和[C1]要如何轉化?

PS:Sheet2和Sheet3只作輔助說明用;完成後就移除。

先感謝各位大大的熱心協助。
12生肖-VBA-Q.rar (10.03 KB)

本帖最後由 papaya 於 2017-11-21 11:38 編輯

爬文許久~解決了~C2
[C2] = Application.Index(Range("D:D"), Application.Match(Range("A2"), Range("I:I"), 0))

C1還是無法解決QQ
https://support.microsoft.com/zh-tw/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel
因為實在無法由上述網站的說明及範例中完全理解和套用在C1公式

懇請各位高手不吝賜教和指導!謝謝先!

TOP

回復 2# papaya
  1. [C1] = Application.SumIf(Range("I1").Offset(Range("C2") - Range("B2") + 1, 1).Resize(, 4), Range("A1"), Range("D1").Offset(Range("C2") - Range("B2") + 1, 1).Resize(, 4))
複製代碼

TOP

回復 3# joblyc017
瞭解了~
,,4  原來4欄的範圍必須以 .Resize(, 4)來表達。
謝謝您^^

TOP

本帖最後由 papaya 於 2017-11-22 05:25 編輯

回復 3# joblyc017
j大:
不好意思,能否再請您指導~
當"DK7:DK"&COUNT(DK:DK)+3之範圍內=$DK$4的列,其該列當欄和右邊的二欄標示8號底色。
請問:公式轉化為程式語法要如何編寫?

另~
將"DK7:DK"&COUNT(DK:DK)+3之範圍內=最大數的列,其該列當欄和右邊的二欄標示8號底色。
請問:公式轉化為程式語法要如何編寫?
謝謝您^^

PS: "DK7:DK"&COUNT(DK:DK)+3的值,不會重複,中間也不會有空白格





只要SHEET1即可,SHEET2只作輔助說明用。

TOP

回復 5# papaya
SHEE2的標的 欄忘了標示~補上

TOP

回復 6# papaya


    請提供範例檔,謝謝

TOP

回復 7# joblyc017

範例檔
TEST.rar (5.29 KB)
請參考!謝謝您^^

TOP

回復 8# papaya


   

TOP

回復 9# joblyc017

J大:
謝謝您的不吝指導^^

TOP

        靜思自在 : 忘功不忘過,忘怨不忘恩。
返回列表 上一主題