Note: The other languages of the website are Google-translated. Back to English

如何在Excel中僅允許負數?

在Excel中,如何只允許輸入負數? 本文將介紹一些有用且快速的技巧來幫助您解決此任務。

僅允許在帶有數據驗證的Excel中使用負數

僅允許在帶有VBA代碼的Excel中使用負數


箭頭藍色右氣泡 僅允許在帶有數據驗證的Excel中使用負數

通常情況下, 數據驗證 功能可以為您提供幫助,請執行以下操作:

1。 選擇要只允許輸入負數的單元格或列,然後單擊 數據 > 數據驗證 > 數據驗證,請參見屏幕截圖:

doc只允許負1

2。 在 數據驗證 對話框中的 設定 標籤,請執行以下選項:

(1.)在 部分中,選擇 十進制 從下拉列表中;

(2.)在 數據 部分,請選擇 小於或等於 選項;

(3.)最後輸入數字 0最大值 文本框。

doc只允許負2

3。 然後點擊 OK,現在只允許輸入負數和0,如果輸入正數,則會顯示警告消息,請參見屏幕截圖:

doc只允許負3


箭頭藍色右氣泡 僅允許在帶有VBA代碼的Excel中使用負數

這是一個VBA代碼,它也可以通過以下代碼為您提供幫助,當您輸入正數時,它將自動轉換為負數,請執行以下操作:

1。 右鍵單擊只允許使用負數的工作表標籤,然後選擇 查看代碼 從上下文菜單中,彈出 Microsoft Visual Basic for Applications 窗口,請複制以下代碼並將其粘貼到空白處 模塊:

VBA代碼:在工作表中僅允許使用負數:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Const sRg As String = "A1:A1000"
    Dim xRg As Range
    On Error GoTo err_exit:
    Application.EnableEvents = False
    If Not Intersect(Target, Range(sRg)) Is Nothing Then
        For Each xRg In Target
            If Left(xRg.Value, 1) <> "-" Then
                xRg.Value = xRg.Value * -1
            End If
        Next xRg
    End If
err_exit:
    Application.EnableEvents = True
End Sub

doc只允許負4

備註:在上面的代碼中, A1:A1000 是您只想輸入負數輸入的單元格。

2. 然後保存並關閉此代碼,返回工作表,現在,當您在代碼中指定的單元格中輸入一些正數時,正數將自動轉換為負數。


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (4)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
你好! 很棒的文章。 一個問題:如果我想在工作表的不同部分應用它而不是一組連貫的單元格(例如 A1:A2 和 A6:A8),有沒有辦法用 VBA 解決方案來做到這一點? 即:如何用幾組單元格替換“A1:A1000”?
網站主持人對此評論進行了最小化
你好,GB,
要將此代碼應用於多個範圍,請使用以下代碼:

注意:使用此代碼時,首先應右鍵單擊工作表選項卡,然後從上下文菜單中單擊查看代碼,然後將以下代碼複製到模塊中。

Private Sub Worksheet_Change(ByVal Target As Range)
'更新通過 Extendoffice
Const sRg As String = "A1:A10,B1:B10,C1:C20" '用逗號分隔範圍
將 xRg 調暗為範圍
將 xSRg 調暗為範圍
在錯誤轉到 err_exit 時:
Application.EnableEvents = False
設置 xSRg = 範圍(sRg)
If Not Intersect(Target, xSRg) 則什麼都不是
對於目標中的每個 xRg
If Left(xRg.Value, 1) <> "-" Then
xRg.Value = xRg.Value * -1
如果結束
下一個 xRg
如果結束
錯誤退出:
Application.EnableEvents = True
END SUB

請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
超級,謝謝! 很有幫助。
網站主持人對此評論進行了最小化
如何使用此代碼將自動格式從 Currency 更改為 Accounting ?
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護