返回列表 上一主題 發帖

[發問] 讓公式的值,直接帶入儲存格

[發問] 讓公式的值,直接帶入儲存格

請問大大,

我要讓JQ4計算並得到AH4-BR4的結果,但只要值(不要格式)就好,我是用以下語法,
請問有其他語法,可以直接讓AH4-BR4的值,直接帶入到JQ4一直到如同F欄的列數,
而不要像以下緩慢的步驟,因為檔案中都是公式,早上才run了一下,整個都當機了.
  1.         With Sh
  2.         Sh.Activate
  3.             Range("JQ2") = Range("H1").Value  '前一日庫存總數,貼到AH
  4.             Range("JQ4") = "=" & "AH4-BR4"
  5.             Range("JQ4").Copy
  6.             xRow = Cells(Cells.Rows.Count, "F").End(xlUp).Row  '看F欄位幾筆資料
  7.             Set Rng = Range("JQ4:JQ" & xRow)
  8.             Rng.PasteSpecial Paste:=xlPasteFormulas  '選擇性貼上公式
  9.             Application.CutCopyMode = False '使來源的copy的虛線閃動停止
  10.             Application.DisplayAlerts = False '在程序執行過程中使出現的警告框不顯示
  11.             Application.Calculation = xlAutomatic    '自動計算
  12.             Rng = Rng.Value
  13.         End With
複製代碼

回復 1# PJChen

試試看
Sub ex()
r = [F65535].End(3).Row                    'F欄位數
[JQ4].Resize(r) = "=AH4-BR4"          'JQ4以下(以F欄位數量長度)置入公式
[JQ:JQ] = [JQ:JQ].Value                      '將公式轉為數值
End Sub

TOP

回復 1# PJChen

這樣試試。

With Sh

Sh.Activate
Range("JQ2") = Range("H1").Value  '前一日庫存總數,貼到AH

xRow = Cells(Cells.Rows.Count, "F").End(xlUp).Row  '看F欄位幾筆資料
Range("JQ4:JQ" & xRow).value = "=AH4-BR4"
Range("JQ4:JQ" & xRow).value  = Range("JQ4:JQ" & xRow).value   '轉換值

end With

TOP

回復 2# jcchiang
回復 3# kim223824

感謝兩位的幫忙,答案都可以用

請問jcchiang
r = [F65535].End(3).Row
後面的End(3) 怎麼解讀?
它得出的答案會多3列,超出F欄列數
本來以為要改為(0),結果不能用,請問要如何做?

TOP

回復 4# PJChen


r = [F65535].End(3).Row > 是最後一筆資料的--列號

r = [F65535].End(3).Row -3 > 減去標題列上方的列數, 才是資料的--筆數


r = [F65535].End(3).Row > (3) = (xlup)

TOP

回復 1# PJChen

Range("JQ4") = "=" & "AH4-BR4"
這只是簡單公式, 並不太耗效能,
除非行數太多,
甚至已有其它大量公式[正在引用]JQ欄, 所以才會拖累速度

TOP

回復 5# 准提部林
感謝准大,
r = [F65535].End(3).Row -3 資料就可以正常
關於End(3)....我想這應該各種代號有不同的用法,請問哪裡可以有這個代號解說?

TOP

回復 7# PJChen

請參考!!
https://blog.csdn.net/xuemanqianshan/article/details/89305212
向左 xlToLeft - -----1       
向右 xlToRight - ---2       
向上 xlUp - ---------3       
向下 xlDown -------4

TOP

回復 8# jcchiang

謝謝

TOP

回復 3# kim223824

好感謝你教的這段程式,我很常用到這個,真是實用,太感謝了...
With Sh

Sh.Activate
Range("JQ2") = Range("H1").Value  '前一日庫存總數,貼到AH

xRow = Cells(Cells.Rows.Count, "F").End(xlUp).Row  '看F欄位幾筆資料
Range("JQ4:JQ" & xRow).value = "=AH4-BR4"
Range("JQ4:JQ" & xRow).value  = Range("JQ4:JQ" & xRow).value   '轉換值

end With

TOP

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