Board logo

標題: 指定"公式"變成值 [打印本頁]

作者: jsc0518    時間: 2018-1-21 20:22     標題: 指定"公式"變成值

本帖最後由 jsc0518 於 2018-1-21 20:25 編輯

Dear 先進,
我有一個EXCEL,內容主要是用VLOOKUP去找尋資料帶出相對的值
有一欄位是做加總的SUM

問題是我只想給我主管看到SUM的欄位公式,而VLOOKUP的部分,我想用一個VBA語法將VLOOKUP變成單純數字(無VLOOKUP公式),我要怎麼寫VBA語法
*舉例的是一個很簡易的EXCEL,我本身的表是很複雜,很多欄位加總及用VLOOKUP

我只想保留SUM公式
[attach]28268[/attach]

VLOOKUP想用值取代
[attach]28269[/attach]

[attach]28267[/attach]
作者: kim223824    時間: 2018-1-22 15:34

[attach]28270[/attach]

範例如下:

Private Sub CommandButton1_Click()

    Range("C4").Value = "=IF(ISNA(VLOOKUP($B4,Sheet2!$H:$I,2,0)),0,VLOOKUP($B4,Sheet2!$H:$I,2,0))"
    Range("C5").Value = "=IF(ISNA(VLOOKUP($B5,Sheet2!$H:$I,2,0)),0,VLOOKUP($B5,Sheet2!$H:$I,2,0))"
    Range("C6").Value = "=IF(ISNA(VLOOKUP($B6,Sheet2!$H:$I,2,0)),0,VLOOKUP($B6,Sheet2!$H:$I,2,0))"
    Range("C7").Value = "=IF(ISNA(VLOOKUP($B7,Sheet2!$H:$I,2,0)),0,VLOOKUP($B7,Sheet2!$H:$I,2,0))"
   
    Range("C4:C7").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C4").Select
   
End Sub
作者: jsc0518    時間: 2018-1-22 17:02

回復 2# kim223824
感謝您的回覆,我試試看
謝謝您!
作者: GBKEE    時間: 2018-1-23 15:13

試試看
  1. Option Explicit
  2. Sub Ex()
  3.     With Sheets("SHEET2")
  4.         With .Range(.Range("B4"), .Range("B4").End(xlDown)).Offset(, 1)
  5.             .FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC2,Sheet2!R1C8:R4C9,2,0)),0,VLOOKUP(RC2,Sheet2!R[-3]C[5]:RC[6],2,0))"
  6.             .Value = .Value
  7.         End With
  8.     End With
  9. End Sub
複製代碼
回復 3# jsc0518
作者: jsc0518    時間: 2018-1-24 11:26

回復 4# GBKEE
感謝您的回覆,想與您請教
因我自己本身excel有許多(大量)欄位有含vlookup公式
是否可用VBA自動找尋欄位內只要有vlookup的函數時,便將該欄位轉換成值呢?
Thanks!
作者: hcm19522    時間: 2018-1-24 13:11

VLOOKUP程式在別處產生 再用複製-->選擇性貼上C4:C7-->選值-->只有數字
改VLOOKUP程式=IFERROR(VLOOKUP(B4&"*",H:I,2,),)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)