如何寫VBA讓內容可以對應相同內容帶入數值

各為大大麻煩請協助:
銷售店家總店數有52家
但我每天累積的銷售店家不見得有到52家


圖一為例:
如何寫VBA讓內容可以對應相同內容帶入數值


A、B為:銷售機台店家名34家及數量
D、E為:銷售耗材店家名45家及數量
G、H、I為:總店價52家 對應的機台及耗材數量

H、I可以對應填入B、E的銷售數量 IFERROR+VLOOKUP我知道可以設定對應值來填入對應區間,
可以對應到固定的H3:I54內
IFERROR(VLOOKUP(G3,$A$3:$B$36,2,FALSE),0)------->B36為變數[總計欄位(B38)的上兩格儲存格(B36)]
IFERRORVLOOKUP(G3,$D$3:$E$47,2,FALSE),0)-------->E47為變數[總計欄位(E49)的上兩格儲存格(E47)]
不知道如何寫程式可以讓上方紅字不受影響

若能寫成VBA那在程式內要如何寫成對應的程式碼,懇請大大開恩!協助處理

以下為檔案,懇請大大協助!!!
https://drive.google.com/file/d/1Wiwr-otMDGFiXaIITt5fVkh9UZO43mbe/view?usp=sharing
2021-05-31 1:59 發佈
文章關鍵字 VBA 內容 數值
michael811122 wrote:
不知道如何寫程式可以讓上方紅字不受影響


把 $A$3:$B$36 改成
OFFSET($A$1, 2, 0, MATCH("總計", A:A, 0)-2, 2)

My Interior Knowledge is Extraordinaire
謝謝哥哥~!!大力教學
再請教如何把內容寫成vba呢!
目前是非常土法煉鋼的用錄製方式 把以下內容寫出來

以下為VBA程式碼
Range("G2").Select
ActiveCell.FormulaR1C1 = "店名"
Range("H2").Select
ActiveCell.FormulaR1C1 = "機台"
Range("I2").Select
ActiveCell.FormulaR1C1 = "耗材"
Range("G3").Select
ActiveCell.FormulaR1C1 = "和平旗艦"
Range("G4").Select
ActiveCell.FormulaR1C1 = "金門"
Range("G5").Select
ActiveCell.FormulaR1C1 = "基隆安樂"
Range("G6").Select
ActiveCell.FormulaR1C1 = "石牌"
Range("G7").Select
ActiveCell.FormulaR1C1 = "天母"
Range("G8").Select
ActiveCell.FormulaR1C1 = "南京旗艦"
Range("G9").Select
ActiveCell.FormulaR1C1 = "台北博愛"
Range("G10").Select
ActiveCell.FormulaR1C1 = "基隆旗艦"
Range("G11").Select
ActiveCell.FormulaR1C1 = "北投新旗艦"
Range("G12").Select
ActiveCell.FormulaR1C1 = "金門山外"
Range("G13").Select
ActiveCell.FormulaR1C1 = "士林旗艦"
Range("G14").Select
ActiveCell.FormulaR1C1 = "復北"
Range("G15").Select
ActiveCell.FormulaR1C1 = "萬大"
Range("G16").Select
ActiveCell.FormulaR1C1 = "基隆信義"
Range("G17").Select
ActiveCell.FormulaR1C1 = "寧夏"
Range("G18").Select
ActiveCell.FormulaR1C1 = "新北投"
Range("G19").Select
ActiveCell.FormulaR1C1 = "錦西"
Range("G20").Select
ActiveCell.FormulaR1C1 = "基隆仁二"
Range("G21").Select
ActiveCell.FormulaR1C1 = "瑞芳"
Range("G22").Select
ActiveCell.FormulaR1C1 = "七堵"
Range("G23").Select
ActiveCell.FormulaR1C1 = "社子"
Range("G24").Select
ActiveCell.FormulaR1C1 = "花蓮旗艦"
Range("G25").Select
ActiveCell.FormulaR1C1 = "新吉安"
Range("G26").Select
ActiveCell.FormulaR1C1 = "花蓮建國"
Range("G27").Select
ActiveCell.FormulaR1C1 = "花蓮林森"
Range("G28").Select
ActiveCell.FormulaR1C1 = "玉里"
Range("G29").Select
ActiveCell.FormulaR1C1 = "泰山明志"
Range("G30").Select
ActiveCell.FormulaR1C1 = "新莊"
Range("G31").Select
ActiveCell.FormulaR1C1 = "蘆洲旗艦"
Range("G32").Select
ActiveCell.FormulaR1C1 = "化成"
Range("G33").Select
ActiveCell.FormulaR1C1 = "林口文化"
Range("G34").Select
ActiveCell.FormulaR1C1 = "新四維"
Range("G35").Select
ActiveCell.FormulaR1C1 = "三重仁愛"
Range("G36").Select
ActiveCell.FormulaR1C1 = "三重重新"
Range("G37").Select
ActiveCell.FormulaR1C1 = "鶯歌"
Range("G38").Select
ActiveCell.FormulaR1C1 = "三重重陽"
Range("G39").Select
ActiveCell.FormulaR1C1 = "淡水"
Range("G40").Select
ActiveCell.FormulaR1C1 = "新長庚"
Range("G41").Select
ActiveCell.FormulaR1C1 = "林口竹林"
Range("G42").Select
ActiveCell.FormulaR1C1 = "八里"
Range("G43").Select
ActiveCell.FormulaR1C1 = "金山"
Range("G44").Select
ActiveCell.FormulaR1C1 = "五股"
Range("G45").Select
ActiveCell.FormulaR1C1 = "三民"
Range("G46").Select
ActiveCell.FormulaR1C1 = "淡水中山"
Range("G47").Select
ActiveCell.FormulaR1C1 = "泰林"
Range("G48").Select
ActiveCell.FormulaR1C1 = "新埔"
Range("G49").Select
ActiveCell.FormulaR1C1 = "板橋"
Range("G50").Select
ActiveCell.FormulaR1C1 = "板橋溪北"
Range("G51").Select
ActiveCell.FormulaR1C1 = "新板橋中山"
Range("G52").Select
ActiveCell.FormulaR1C1 = "埔墘"
Range("G53").Select
ActiveCell.FormulaR1C1 = "土城學成"
Range("G54").Select
ActiveCell.FormulaR1C1 = "金城"
End Sub
----------------------------------------------------------------------------------------------------------------------------
那後續如何把
IFERROR(VLOOKUP(G3,OFFSET($A$1, 2, 0, MATCH("總計", A:A, 0)-2, 2),2,FALSE),0)

IFERROR(VLOOKUP(G3,OFFSET($D$1, 2, 0, MATCH("總計", D:D, 0)-2, 2),2,FALSE),0)
請成VBA的形式讓程式碼讀取呢?

不好意思我比較笨拙,所以希望大大能指點迷津!
https://drive.google.com/file/d/1Wiwr-otMDGFiXaIITt5fVkh9UZO43mbe/view?usp=sharing
michael811122 wrote:
謝謝哥哥~!!大力教(恕刪)
以下參考,有加入註解
耗材欄可以如法炮製,慢慢看應該很容易理解,和改參數
點連結進去複製,貼到巨集裡

https://pastebin.com/fmWveC0R

Sub ArrayDataGrab() '利用建立陣列來抓取資料(也可設計成取代)

'宣告DataTable是一個陣列,i是整數
Dim i As Integer
Dim DataTable As Variant
'將特定範圍的資料讀取至DataTable陣列中
'要處理的資料先設計迴圈數
'利用搜尋功能,在指定範圍中找尋同名資料(完全符合):
'被找尋的範圍.Find(找尋的條件名稱,完全符合)
'如果找不到資料,則標示紅色"查無此字串"
'反之有找到,利用此資料的位置與陣列相同,提取其列數代入陣列函數中
DataTable = Sheets(1).Range("A3:B" & Sheets(1).Cells(Rows.Count, "B").End(xlUp).Row).Value
For i = 3 To ActiveSheet.Cells(Rows.Count, "G").End(xlUp).Row
Set F = Sheets(1).Range("A3:A" & Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row). _
Find(ActiveSheet.Cells(i, "G"), lookat:=xlWhole)

If F Is Nothing Then
ActiveSheet.Cells(i, "H") = "無"
ActiveSheet.Cells(i, "H").Font.Color = RGB(255, 0, 0)
Else:
ActiveSheet.Cells(i, "H") = DataTable(F.Row - 2, 2)
ActiveSheet.Cells(i, "H").Font.Color = RGB(0, 0, 0)
End If
Next i

End Sub
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?