2017-02-13 52 views
-1

我需要製作兩個宏按鈕,分別根據它的十進制值來增加和減少單元格的值。使用RIGHT函數嵌套IF VBA

例如:細胞AA8目前= 117.292

IF小數點(右3)= 317之後的3位再加入0.683至細胞。

IF以上是假,則檢查是否最後一個數字(右1)= 0或5,如果真,那麼0.02

IF以上是假然後添加要被施加0.03

然後相反將需要到另一個宏。

例如:細胞AA8目前= 117.292

IF小數點(右3)= 000之後的3個位數然後從細胞中減去0.683。

IF以上是假,則檢查是否最後一個數字(右1)= 0或5,如果真,那麼-0.03

IF上方假然後減去0.02

代碼我試圖

Sub TEST_UP() 
If Right(aa8, 3) = "317" Then Range("aa8").Value = Range("aa8").Value + 0.683 
Else 
    If Right(aa8, 1) = "0 OR 5" Then Range("aa8").Value = Range("aa8").Value + 0.02 
    Else 
     Range("aa8").Value = Range("aa8").Value + 0.03 
    End If 
End If 
End Sub 

回答

0

插入 「增加」 按鈕:

  • 標籤開發 - >插入控件 - >按鈕(窗體控件)

  • 「畫」按鈕,在「指定宏」對話框,在屏幕

  • 點擊「新建」

  • Sub ...()End Sub聲明之間

    鍵入上以下:

    With Range("AA8") 
        Select Case True 
         Case Format(Right(.Text, Len(.Text) - InStrRev(.Text, Application.DecimalSeparator)), "000") = "317" 
          .Value = .Value + 0.683 
         Case Right(.Text, 1) = 1, Right(.Text, 1) = 5 
          .Value = .Value + 0.02 
         Case Else 
          .Value = .Value + 0.03 
        End Select 
    End With 
    
+0

當值.317它工作正常。任何其他值,無論最後一位數字如何,它都會增加0.3:( – SimonT

+0

在我的測試中它按照「specs」工作:單元格AA8初始值='.317' - >步驟1)第一個條件匹配:.317+ 0.683 ='1'步驟2)第一條件不匹配,第二條件匹配(最後一位= 1) - > 1 + 0.02 ='1.02'步驟3)第一和第二條件不匹配 - > 1.02 + 0.03 ='1.05'步驟4)第一個條件不匹配,第二個條件匹配(最後一個數字='5') - > 1.05 + 0.02 ='1.07' ...等等 – user3598756

+0

對不起,我犯了一個愚蠢的錯誤。應該是0.003和0.002。非常感謝 – SimonT