返回列表 上一主題 發帖

計算後自動刪除

計算後自動刪除

舉例
A1數字100
A2輸入50按下enter後自動清空A2數字
A3等於A1+A2的結果150
請問該如何寫呢?

謝謝大大

回復 1# coafort


    謝謝前輩發表此主題
後學建議vba觸發的方式

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
'↑如果觸發編輯儲存格位址是 ""$A$2""
   If IsNumeric([A1]) And IsNumeric([A2]) And [A2] <> "" Then
   '↑如果IsNumeric()判斷[A1]是數值,IsNumeric()判斷[A2]也數值,而且[A2]不是空字元
      [A3] = [A1] + [A2]: [A2] = ""
      '↑令[A3]儲存格值=[A1]儲存格值+[A2]儲存格值: 然後令[A2]儲存格值是空字元
   End If
End If
End Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復  coafort


    謝謝前輩發表此主題
後學建議vba觸發的方式

Option Explicit
Private Sub Wo ...
Andy2483 發表於 2023-2-16 11:42

報告大大
沒作用
謝謝

TOP

回復 3# coafort


    謝謝前輩回復
上傳測試檔,請下載來試試看
計算後自動刪除.zip (7.92 KB)
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復  coafort


    謝謝前輩回復
上傳測試檔,請下載來試試看
Andy2483 發表於 2023-2-16 14:07



我搞錯了
應該是這樣
A1 100
A2 輸入50
A1會變成150
A2消失
真是不好意思
麻煩大大
謝謝大大

TOP

本帖最後由 Andy2483 於 2023-2-16 15:25 編輯

回復 5# coafort


    謝謝前輩再回復
請前輩將工作表模組下原來的程式碼換成 下列程式碼,然後再操作試試看

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
'↑如果觸發編輯儲存格位址是 ""$A$2""
   If IsNumeric([A1]) And IsNumeric([A2])  Then
   '↑如果IsNumeric()判斷[A1]是數值,IsNumeric()判斷[A2]也是數值
      Application.EnableEvents = False
      '↑令觸發失效
      [A1] = [A1] + [A2]: [A2] = ""
      '↑令[A1]儲存格值=[A1]儲存格值+[A2]儲存格值: 然後令[A2]儲存格值是空字元
      Application.EnableEvents = True
      '↑令恢復觸發
   End If
End If
End Sub
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復  coafort


    謝謝前輩再回復
請前輩將工作表模組下原來的程式碼換成 下列程式碼,然後再操作試 ...
Andy2483 發表於 2023-2-16 15:22


可以了
非常感謝大大

TOP

回復  coafort


    謝謝前輩回復
上傳測試檔,請下載來試試看
Andy2483 發表於 2023-2-16 14:07


請問大大
如果我有三個項目需要這種功能
請問要怎麼加入?
謝謝

TOP

回復 8# coafort


    謝謝前輩繼續一起學習
以下是編輯觸發 $A$2 ,$B$2 $B$2 的測試碼,請前輩試改成所符合需求的,或上傳範例

3個.png
2023-2-17 09:11



Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
'↑如果觸發編輯儲存格位址是 ""$A$2""
   If IsNumeric([A1]) And IsNumeric([A2]) Then
   '↑如果IsNumeric()判斷[A1]是數值,IsNumeric()判斷[A2]也是數值
      Application.EnableEvents = False
      '↑令觸發失效
      [A1] = [A1] + [A2]: [A2] = ""
      '↑令[A1]儲存格值=[A1]儲存格值+[A2]儲存格值: 然後令[A2]儲存格值是空字元
      Application.EnableEvents = True
      '↑令恢復觸發
   End If
End If
If Target.Address = "$B$2" Then
'↑如果觸發編輯儲存格位址是 ""$B$2""
   If IsNumeric([B1]) And IsNumeric([B2]) Then
      Application.EnableEvents = False
      [B1] = [B1] + [B2]: [B2] = ""
      Application.EnableEvents = True
   End If
End If
If Target.Address = "$C$2" Then
'↑如果觸發編輯儲存格位址是 ""$C$2""
   If IsNumeric([C1]) And IsNumeric([C2]) Then
      Application.EnableEvents = False
      [C1] = [C1] + [C2]: [C2] = ""
      Application.EnableEvents = True
   End If
End If
End Sub

祝順利! 美好的一天!
看得懂是應該的,懂得應用才像學生,臉皮厚點學會更謹慎積極

TOP

回復  coafort


    謝謝前輩繼續一起學習
以下是編輯觸發 $A$2 ,$B$2 $B$2 的測試碼,請前輩試改成所 ...
Andy2483 發表於 2023-2-17 09:15


非常感謝大大的幫忙
回應速度快速
程式精準
感恩

TOP

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