返回列表 上一主題 發帖

指定"公式"變成值

指定"公式"變成值

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

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

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

我只想保留SUM公式
1.jpg
2018-1-21 20:24


VLOOKUP想用值取代
2.jpg
2018-1-21 20:24


test.rar (12.61 KB)
Just do it.

test_ANS.zip (18.6 KB)

範例如下:

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

TOP

回復 2# kim223824
感謝您的回覆,我試試看
謝謝您!
Just do it.

TOP

試試看
  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
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

[版主管理留言]
  • GBKEE(2018/1/24 12:06): 附檔看看

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

TOP

VLOOKUP程式在別處產生 再用複製-->選擇性貼上C4:C7-->選值-->只有數字
改VLOOKUP程式=IFERROR(VLOOKUP(B4&"*",H:I,2,),)
隨意窩 "EXCEL迷"  blog  或 http://blog.xuite.net/hcm19522/twblog
已收集4000篇 EXCEL函數

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題