COCO研究院

 找回密碼
 註冊
搜索
查看: 5385|回復: 3

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

[複製鏈接]
發表於 18-11-28 21:15 | 顯示全部樓層 |閱讀模式
請教大大們,假設我將
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已編好的函數來使用??
謝謝
 樓主| 發表於 19-9-25 02:28 | 顯示全部樓層
啊咧= ="這麼久沒來發問,結果這問題至今未解...
只好自己再回一下,讓其扶出抬面囉..
另請教val 這函數要怎麼用..我查了下微軟的解說..恩...有看沒有懂地啦...謝謝哦
 樓主| 發表於 19-9-25 03:06 | 顯示全部樓層
OK問題我用cells解決了

評分

參與人數 1金錢 +2 收起 理由
abopt + 2 感謝分享

查看全部評分

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-5-1 13:48

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 | AI繪圖AI超擬真美女AI beauty AI Stable DiffusionAI正妹AI Lookbook