返回列表 上一主題 發帖

請問sheet轉換的問題

回復 2# GBKEE

是要查表啦!
注意SHEET1與SHEE2之B欄是不同的
在SHEE2 B欄輸入欲查詢之資料,即查出相對應C~J欄的資料(有3列)

本題是要用程式寫
另一題(如下)是用公式寫
sheet-vlookup.zip (4.45 KB)

TOP

本帖最後由 register313 於 2012-1-18 14:16 編輯

回復 1# tonycho33
  1. Sub VLOOKUP()
  2. '清除Sheet2之C~J欄
  3. Sheet2.Columns("C:J") = ""
  4.    '從Sheet2之第R列(第2列)開始
  5.    R = 2   
  6.    '執行迴圈,直到Sheet2 R列B欄之值=""
  7.    Do Until Sheet2.Cells(R, "B") = ""
  8.       'FIND函數:在Sheet1.Range("B1:B65535")內尋找Sheet2.Cells(R, "B")之值,找到時將位址傳給S
  9.       Set S = Sheet1.Range("B1:B65535").Find(Sheet2.Cells(R, "B"), , , xlWhole)
  10.       '在Sheet1找到之位址右偏移1格並擴大為3列8欄 複製到 Sheet2
  11.       S.Offset(0, 1).Resize(3, 8).Copy Sheet2.Cells(R, "C").Resize(3, 8)
  12.       '下一個要尋找的列(第5列)(第8列)...
  13.       R = R + 3
  14.    '返回迴圈
  15.    Loop
  16. End Sub
複製代碼

TOP

回復 7# tonycho33

程式
sheet-vlookup程式.rar (9.3 KB)

函數
G2=OFFSET(INDEX(Sheet1!$A:$R,MATCH($A2,Sheet1!$A:$A,0),COLUMN()-1),MOD(ROW()+1,3),0)
G3=OFFSET(INDEX(Sheet1!$A:$R,MATCH($A2,Sheet1!$A:$A,0),COLUMN()-1),MOD(ROW()+1,3),0)
G4=OFFSET(INDEX(Sheet1!$A:$R,MATCH($A2,Sheet1!$A:$A,0),COLUMN()-1),MOD(ROW()+1,3),0)
G2 G3 G4公式相同

選G2:G4 向右拉
向下拉

TOP

回復 9# tonycho33
  1. Sub VLOOKUP()
  2. Sheet2.Columns("G:S") = ""   '清除Sheet2之G~S欄
  3. R = 2   '從Sheet2之第R列(第2列)開始
  4.    Do Until Sheet2.Cells(R, "A") = ""  '執行迴圈,直到Sheet2 R列A欄之值=""
  5.       Set s = Sheet1.Range("A1:A65535").Find(Sheet2.Cells(R, "A"), , , xlWhole)  'FIND函數:在Sheet1.Range("A1:A65535")內尋找Sheet2.Cells(R, "A")之值,找到時將位址傳給S
  6.           If Not s Is Nothing Then     '搜尋值找到時再作寫入
  7.              s.Offset(0, 5).Resize(3, 13).Copy Sheet2.Cells(R, "G").Resize(3, 13)    '在Sheet1找到之位址右偏移5格並擴大為3列13欄 複製到 Sheet2
  8.           End If
  9.       R = R + 3     '下一個要尋找的列(第5列)(第8列)...
  10.    Loop  '返回迴圈
  11. End Sub
複製代碼
sheet-vlookup程式.rar (9.29 KB)

TOP

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