返回列表 上一主題 發帖

[發問] 資料庫取不重覆資料方式請教

[發問] 資料庫取不重覆資料方式請教

DEAR ALL 大大-
1.如圖一資料庫於SHEET1中
2.原則: 要抓取SHEET1不重覆資料至SHEET2中
2.1 前6碼相同算重覆.抓取不重覆資料至SHEET2中.結果如圖二
3.請教如何下 VBA 語法??煩不吝賜教 THANKS*10000
圖一 資料庫
SHEET1
A1=編號        B1=項目   
A2=A12345A     B2=1
A3=B12345B     B3=2
A4=B12345*     B4=3
A5=A12345      B5=4
A6=B12345      B6=5
圖二 結果
SHEET2
A1=編號        B1=項目   
A2=A12345        B2=4
A3=B12345        B3=5

Sub ex1()
    Arr = Sheet1.Range("A1").CurrentRegion
    Set d = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Arr)
        d(Left(Arr(i, 1), 6)) = Arr(i, 2)
    Next
    Sheet2.[A1:B65536].ClearContents
    Sheet2.[A1].Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

DEAR ML089 大大
100%符合需求.THANKS*10000

TOP

DEAR 大大
  如下.原A.B欄資料轉換 要改為 A-F欄資料轉換
  為何 Sheet2.[A1].Resize(d.Count, 2) 改 Sheet2.[A1].Resize(d.Count, 6)
   後 C.D.E.F欄資料都出現 N/A 煩不吝賜教  THANKS  

Sub AA()
    Arr = Sheet1.Range("A1").CurrentRegion
    Set d = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Arr)
        d(Left(Arr(i, 1), 6)) = Arr(i, 2)
    Next
    Sheet2.[A1:F65536].ClearContents
    Sheet2.[A1].Resize(d.Count, 6) = Application.Transpose(Array(d.keys, d.items))
End Sub

TOP

回復 4# rouber590324
要詢問,請於問題下方按回覆鍵

取A-F欄資料
Sub ex2()
    Arr = Sheet1.Range("A1").CurrentRegion
    Set d = CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Arr)
        d(Left(Arr(i, 1), 6)) = Array(Arr(i, 1), Arr(i, 2), Arr(i, 3), Arr(i, 4), Arr(i, 5), Arr(i, 6))
    Next
    Sheet2.[A1:F65536].ClearContents
    Sheet2.[A1].Resize(d.Count, 6) = Application.Transpose(Application.Transpose(d.items))
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

DEAR ML089 大大
100%符合需求.THANKS*10000

DEAR  hcm19522  大大
感謝提供參考資料 THANKS*10000

TOP

        靜思自在 : 有多少力量就做多少事,不要心存等待,等待才會落空。
返回列表 上一主題