返回列表 上一主題 發帖

[發問]如何使用VBA將有重複參照值貼到不同worksheet

[發問]如何使用VBA將有重複參照值貼到不同worksheet

各位專家好,我自己近期開始自己鑽研程式撰寫,
由於是VBA新手,近來配合工作所需想要寫一個VBA程式,查了網路上許多資料,必須跨不同表單參照的一個作業
本想使用巨集搭配Vlookup函數但因為他並不是Case sensitive的函數,因此作罷

嘗試寫了Index 參照表但發現比對會停不下來,我想跟我下的指令有關
預期希望按下按鈕(透過"帶入職能(right)"的按鈕,TriggerH2欄位讓表A底下的能從表B欄位A以及其相同列資料都能匯入相對應的值
如圖:


但拼湊的巨集都會變成這樣...


這是我的程式碼
  1. Sub 按鈕9_Click()

  2. Dim SourceLastRow As Long
  3. Dim OutputLastRow As Long
  4. Dim sourceSheet As Worksheet
  5. Dim outputSheet As Worksheet




  6. 'What are the names of our worksheets?
  7. Set sourceSheet = Worksheets("competencylist_2016")
  8. Set outputSheet = Worksheets("inserttext")

  9. 'Determine last row of source
  10. With sourceSheet
  11.     SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
  12. End With
  13. With outputSheet
  14.     'Determine last row in col P
  15.    OutputLastRow = .Cells(.Rows.Count, "P").End(xlUp).Row
  16.     'Apply our formula
  17.    
  18.   

  19.    .Range("B6:B20" & OutputLastRow).Formula = _
  20.         "=INDEX('competencylist_2016'!$C$2:$C$100, SMALL(INDEX(($H$2='competencylist_2016'!$A$2:$A$100)*(MATCH(ROW('competencylist_2016'!$A$2:$A$100),ROW('competencylist_2016'!$A$2:$A$100)))+($H$2<>'competencylist_2016'!$A$2:$A$100)*1048577,0,0),ROW('competencylist_2016'!A1)))"

  21.    .Range("C6:C20" & OutputLastRow).Formula = _
  22.        "=VLOOKUP(B:B,'" & sourceSheet.Name & "'!$C$1:$F$1" & SourceLastRow & ",2,0)"
  23. End With

  24. End Sub
複製代碼
望各位先進給予指導,謝謝!
VBA TEST08022016.rar (375.92 KB)

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題