返回列表 上一主題 發帖

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

回復 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

回復 7# PJChen

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

TOP

回復 11# PJChen
加個"."
   Set Sh = W.Sheets("多")
        Sh.Activate
        i = "A2:E2"
            xcol = Sh.Range(i).Columns.Count  '看幾筆資料
        With W.Sheets("新")
        W.Sheets("新").Activate
       .Range("A4" & xcol).Value = "=" & "多!A3*多!C3" '公式
       .Range("A4" & xcol).Value = .Range("A4" & xcol).Value
        
        End With   
另外Range("A4" & xcol),如果xcol=5,則為Range("A45")
如果是要Range("A4")加上xcol的欄位則改為
.Range("A4").Resize(1, xcol).Value = "=" & " 多!A3*多!C3" '公式
.Range("A4").Resize(1, xcol).Value = .Range("A4").Resize(1, xcol).Value
如果xcol=5,這樣Range("A4")至Range("E4")都會放入公式,但公式的位置會變化
如果要向下放就將Resize(1,xcol)改為Resize(xcol,1)
以上提供參考

TOP

回復 13# PJChen
可以執行阿!!
不是有寫:Range("A4" & xcol),如果xcol=5,則為Range("A45")
以你的程式會在Sheets("新")的Range("A45")有個值
如果要向右貼公式改成這樣:
.Range("A4").Resize(1, xcol).Value = "=" & " 多!A3*多!C3" '公式
.Range("A4").Resize(1, xcol).Value = .Range("A4").Resize(1, xcol).Value
但因為公式並沒有將欄位固定,所以公式會變動
Range("A4")= "=" & " 多!A3*多!C3" '公式
Range("B4")= "=" & " 多!B3*多!D3" '公式
Range("C4")= "=" & " 多!C3*多!E3" '公式
以此類推

TOP

回復 45# PJChen

妳是要F2欄位恢復顯示"實出效期"嗎??
如果是將程式最後[F2] = ""改為[F2] = "實出效期"

TOP

回復 50# PJChen
試試看!!
Sub ex()
Dim x%, i%
Dim xR As Object
For Each xR In Range([b5], [b65535].End(3))
   If xR = "訂單" Or xR = "廠缺" Or xR = "實出數" Then
      For i = 1 To 8
         If xR.Offset(, i) <> 0 Then
            x = Application.WorksheetFunction.Quotient(xR.Offset(, i), [C3])  '計算箱數
            xR.Offset(, i) = xR.Offset(, i) & "=" & vbCrLf & x & "箱+" & xR.Offset(, i) Mod [C3]
         End If
      Next
   End If
Next
End Sub

TOP

回復 52# PJChen

For Each xR In Range([b5], [b65535].End(3))
這是讓xR在Range([b5], [b65535].End(3))這個範圍內執行

If xR = "訂單" Or xR = "廠缺" Or xR = "實出數" Then
才是判斷要計算的列

TOP

回復 57# PJChen
最近比較忙,沒時間研究

Sub ex()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
For Each a In Range("B:B")
    If a = "林口" Then d(a.Address) = d(a.Address)  '抓林口的位置,廠商自行更換
Next
Range(d.Keys()(0)).Offset(, 5).Resize(d.Count, 10).Select '選擇範圍,請自行加入複製到哪的程式
End Sub

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題