MaverickRay 發表於 18-11-28 21:15

請教VBA語法內若使用EXCEL的計算公式,如何使其只丟回值?

請教大大們,假設我將
A 欄為公司名

C 欄訂定公式名為 營收
D 欄訂定公式名為 成本
E 欄=> 毛利
但若不再EXCEL下直接在E欄裡輸入 =營收-成本時
而是想借用VBA的方法,讓VBA在試算後再丟回值至相關的毛利欄的儲存格.
要怎麼寫呢?
另前提是D欄成本有時抓到的數據會是 -- (非0值)
所以原先我在試算表裡是直接將E欄的公式改寫成
=if(成本="",營收,營收-成本)

然後我在VBA裡兩個寫法如下:
1、
i = Cells(Rows.Count, "A").End(xlUp).Row '計算A欄裡公司名共有幾列
For i = 2 To x
      Cells(i, "E") = "=IF(成本=""--"",毛利,毛利-成本)"   '此後半段主要是從試算表裡直接copy過來
Next
'PS:可是這個程序跑完後,發現他只是將=IF(成本=""--"",毛利,毛利-成本) 這個公式再次套回到毛利的個別儲存格了= ="

------------------------------------------
2、利用錄製的填滿控點

'判定列數後自動將 E2 格之公式(毛利欄的部份)填滿控點
'將E2的公式填滿控點到尾端
Range("E2").Select
    ActiveCell.FormulaR1C1 = "=IF(成本=""--"",毛利,毛利-成本)"

'判定列數後自動將V2格之公式(本季權益淨額)填滿控點
    i = Cells(Rows.Count, "A").End(xlUp).Row '計算A欄公司代號共有幾列
'將E2的公式填滿控點到尾端
    Range("E2").AutoFill Destination:=Range("V2:V" & i), Type:=xlFillCopy

'結果執行後也是一樣只是把公式丟回EXCEL的儲存格而已..
我想知道要怎麼寫回圈,才能把算完的值丟回去就好..
另外要怎麼在VBA裡直接取用EXCEL的函數呢?可以簡單舉個例子嗎?
例如EXCEL裡有個Sum函數或Count函數,假設在VBA裡正好也要計算這種情況時,如何直接用EXCEL已編好的函數來使用??
謝謝

MaverickRay 發表於 19-9-25 02:28

啊咧= ="這麼久沒來發問,結果這問題至今未解...
只好自己再回一下,讓其扶出抬面囉..
另請教val 這函數要怎麼用..我查了下微軟的解說..恩...有看沒有懂地啦...謝謝哦

MaverickRay 發表於 19-9-25 03:06

OK問題我用cells解決了

abopt 發表於 19-9-25 06:25

感謝分享{:4_209:}{:4_209:}
頁: [1]
查看完整版本: 請教VBA語法內若使用EXCEL的計算公式,如何使其只丟回值?