返回列表 上一主題 發帖

複製公式

複製公式

各位前輩你們好!!   
    假設A3=1,A4=2,A5=3
    Sub Ex()
        Dim Rng As Range, e As Range
        If [A3] = "" Then
           [AH1] = "=SUM(INDIRECT(""AH3:AH1200""))"
           [AH2] = "=$A3&""筆"""
        ElseIf [A3] <> "" Then
           With Sheet3
              Set Rng = .Range("AH1", .Range("ZZ1").End(xlToLeft))
              Set e = Rng(1, Rng.Columns.Count + 1)
           End With
           Set Rng = Range("AH1:AH2")
           Rng.Copy e
        End If
   End Sub
   執行結果AI1與AH1公式都相同
           AI2與AH2公式也相同
   應該如下
   當第一次按鈕
        AH1=SUM(INDIRECT("AH3:AH1200"))
        AH2=$A3&"筆"
   第二次按鈕
        AI1=SUM(INDIRECT("AI3:AI1200"))
        AI2=$A4&"筆"
   第三次按鈕
        AJ1=SUM(INDIRECT("AJ3:AJ1200"))
        AJ2=$A5&"筆"
   以此類推請問程式如何修改?
   請知道的前輩,不吝賜教謝謝再三!!

回復 1# myleoyes
是這樣嗎?
  1. Rng.Copy
  2.            e.PasteSpecial xlPasteValues   '僅有值
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE
良師!謝謝!!不能為值要的是公式
          範例的 AI1=SUM(INDIRECT("AI3:AI1200"))
                       AI2=$A4&"筆"
                      AJ1=SUM(INDIRECT("AJ3:AJ1200"))
                      AJ2=$A5&"筆"
           請再麻煩指導!!
          再請教另一問題與本問題是相關連的
         辛苦囉!請不吝賜教謝謝再三!!

LeoV78.rar (273.26 KB)

TOP

回復 3# myleoyes

試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim C As Integer, Rng As Range
  4.     Set Rng = [Ah1]
  5.     C = Cells(1, Columns.Count).End(xlToLeft).Column
  6.     If C < Rng.Column Then
  7.         C = Rng.Column
  8.     Else
  9.         C = C + 1
  10.     End If
  11.     Cells(1, C) = "=SUM(R3C:R200C)"
  12.     Cells(2, C) = "=R" & C - Rng.Column + 2 & "C1&""筆"""
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# GBKEE
良師!謝謝!!不知結算程式是否有解??
        請不吝賜教謝謝再三!!

TOP

回復 5# myleoyes

如圖一在102/5月登入第1筆 , 第2筆資料
月底結算按鈕AH3:AI3分別產生數據
故AH欄與AI欄的起點都從第三列開始
無可厚非AH欄的起點必定是AH3開始
然而AI欄的起點並不一定是AI3開始
範例圖一純屬巧合
為何會純屬巧合?
請上傳實際檔案說明
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE
良師!
     不好意思!因為電腦的硬碟掛了!
     換新重灌所以耽誤了時間抱歉
     小弟已附上檔案請參考看看
     只請半天假,趕上班掰掰!!
     辛苦囉!謝謝再三!!

LeoV78-2.rar (15.95 KB)

TOP

回復 7# myleoyes
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim C As Integer, Rng(1 To 2) As Range, i As Integer, ii As Integer
  4.     Set Rng(1) = [AH1]
  5.     C = Cells(1, Columns.Count).End(xlToLeft).Column
  6.     If C < Rng(1).Column Then
  7.         C = Rng(1).Column
  8.     Else
  9.         C = C + 1
  10.     End If
  11.     Cells(1, C) = "=SUM(R3C:R200C)"
  12.     Cells(2, C) = "=R" & C - Rng(1).Column + 3 & "C1&""筆"""
  13.     ii = 3
  14.     Set Rng(2) = Cells(1200, Rng(1).Column).End(xlUp).Offset(1)
  15.     For i = 0 To C - Rng(1).Column
  16.         If Val(Cells(2, Rng(2).Column).Offset(, i)) <> 0 Then
  17.           Rng(2).Offset(, i) = "=ROUND(r" & ii & "c6 *" & [M3] & ",2)"
  18.             ii = ii + 1
  19.         End If
  20.     Next
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE
良師!謝謝!!
        程式錯誤1004?
        錯誤!!在此列  Rng(2).Offset(, i) = "=ROUND(R" & ii & "c6 *" & [M3] & ",2)"
       小弟能力不足無法修改請麻煩修正辛苦囉!謝謝再三!!

TOP

回復 8# GBKEE
良師!謝謝!!
       抱歉!!因為硬碟掛了最近的資料全毀
      無奈!請將就吧!辛苦囉謝謝再三!!

LeoV78-2A.rar (15.62 KB)

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題