返回列表 上一主題 發帖

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

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

本帖最後由 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

回復 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.png
2017-11-22 05:17


SHEET2.png
2017-11-22 05:21


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

TOP

回復 5# papaya
SHEE2的標的 欄忘了標示~補上
SHEET2.png
2017-11-22 05:40

TOP

回復 7# joblyc017

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

TOP

回復 9# joblyc017

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

TOP

回復 9# joblyc017
TEST-2.png
2017-11-23 02:47

J大:
不好意思,貴解答可否改為以函數公式轉化為程式語法作解,以符合5#的原題意。
謝謝您^^

參考公式︰放在DT1
="DK"&MATCH($DK$4,INDIRECT("DK7:DK"&COUNT(DK:DK)+3),)+6

我自己有試寫多次,但都沒有成功^^///
煩請不吝指正。感恩!

TEST-2.rar (12.91 KB)

TOP

本帖最後由 papaya 於 2017-11-23 09:59 編輯

回復 12# GBKEE

超級版主:您好!
感謝您撥冗解答。
貴解答,小弟會細心仔細的研究~感恩^^

小弟才剛學VBA,連宣告變數定義都還沒有搞懂,但又必須要馬上用;
雖然早就有看微軟的相關函數使用在VBA的說明,但總覺得艱澀難懂;
又想到一直上論壇麻煩人,也不是辦法,所以儘量先上網找相近的程式語法套用。
日前看到可以利用Application將公式轉為語法,也不用再選擇貼上值,因此就一直測試各函數中,
有哪些函數能利用Application轉化? 並上網求教正確的寫法。

很巧~剛剛瀏覽到一篇連陣列公式都可以不用選擇貼上值的文章︰
http://forum.twbts.com/viewthread.php?tid=2122&extra=&page=1
5#
因為該題的提問者和回答者都已許久未登錄論壇,所以正好藉此請教您︰敬請撥冗惠予賜教~
不知是否能以~
X = ["DK"&MATCH($DK$4,INDIRECT("DK7:DK"&COUNT(DK:DK)+3),)+6]
Range(X).Resize(1, 3).Interior.ColorIndex = 8
(以上只是舉例)
之類似程式碼來完成需求?
如果可以,請指導正確的寫法;
如果不型~亦敬請告知。
謝謝您^^

TOP

回復 14# joblyc017
J大:您好!
感謝您撥冗再次指導。

可否麻煩您將程式罵另外貼上。
圖檔無法複製。
謝謝您^^

TOP

        靜思自在 : 【時間成就一切】時間可以造就人格,可以成就事業,也可以儲積功德。
返回列表 上一主題