返回列表 上一主題 發帖

[發問] 垂直欄位項目轉至水平列顯示

本帖最後由 准提部林 於 2015-12-25 18:50 編輯

回復 10# kasa


1)在未特別寫出定義M變數屬性,是預設定義為integer嗎? 
_因MATCH會產生〔整數〕及找不到時〔#N/A],所以,M不可事先定義(預設為Variant),否則程式會錯誤而中斷! 
 其後才有 If IsNumeric(M) Then 作判斷! 

(2)請您指導以下寫這3行的真實對應含義 
   On Error GoTo 999  '發生錯誤時,執行標記999那行程式
_因下一行為〔關閉事件觸發〕,若在〔主處理段〕發生錯誤中斷,程式即跑不到〔恢復事件觸發〕那一行,
 當〔取消〕程式的〔中斷〕提示後,所有的〔事件觸發〕即失效無法運作! 
 (註:因主處理段有對工作表做 Change 的動作,為免〔連鎖反應〕,應先關閉。) 
 Application.EnableEvents = False '關閉事件觸發
 ~~主處理段~~
   999: Application.EnableEvents = True  '恢復事件觸發 

(3)xR(1, 2)==>這個指的是?
_For Each xR In .Cells
 若將資料貼在[B3:B6],則 xR 依次為 B3.B4.B5.B6,
 以 B3 為例,xR(1, 2) 等同 xR.Cells(1, 2),亦即為其〔右一格〕 C3,
 xR(1, 2).Resize(1, 99).ClearContents 即以C3為始,向右取99格清除 

TOP

太謝謝了,清楚很多了

M = Application.Match(xR, [2:2], 0) '找出Item在第2列的位置
再請問,如果只要單純找出Item在G2到M2的位置,用以下寫法卻失敗,該如何修正才對? 謝謝.
M = Application.Match(xR, Range("G2:M2"), 0)

TOP

不好意思,我找到方法了,感謝前賢的大方指導,豁然開朗多了~~~~~

Set rng2 = [AH1:BQ1]
M = Application.Match(xR, rng2, 0)

TOP

回復 10# kasa
謝謝大大的提問 ,我也對這些語句似懂非懂,現在有解答了.

TOP

感謝准堤大的解說,我也看懂了~

TOP

抱歉再提問以下,感謝~
以 B3 為例,xR(1, 2) 等同 xR.Cells(1, 2),亦即為其〔右一格〕 C3
=>以 B3 為例,若改成xR(1, 1) 等同 xR.Cells(1, 1),亦即仍為B3,我這樣理解是對的嗎?

TOP

回復 16# kasa


[B3].cells(1,1)
[B3].offset(0,0)
都是[B3]本尊

TOP

本帖最後由 kasa 於 2015-12-28 15:55 編輯

再請教若需"同時"去"貼入"資料於B/C欄之"屬性"與"細目"欄位中,
其他項目仍皆依"屬性"來比對出第二列之欄位並在所屬同列填入"1",但只有屬性C需依"細目"之C1/C2比對出第二列之欄位並在所屬同列填入"1"
如果仍要寫在Worksheet_Change內,是否有可能達成? 我爬文暫找不到可以同時存在兩種不同target的方法
再請前輩幫忙指導,感謝~
Book2.zip (8.08 KB)

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題