2016-02-17 36 views
0

我试图在Excel中一个简单的预算,我希望有一个宏观,看哪一类我已经做了修改,然后添加变更的钱的总体概述用于该类别。更改值

这就是我在我的片类“食品”细胞的顶部。 再往下看,我放入以下内容: 日期;类别;金额使用。

我的代码已经被使用一个按钮,直到now.The按钮,检查小区5位到左侧的值为“Dagligvare”,然后在薄片其他地方变化的值。 我的问题是,有时候Button会识别这个词,有时它不会。所以我的问题是:任何人都可以看到为什么它只有有时即使我没有改变任何东西?

Private Sub CommandButton1_Click() 
    Dim celltxt As String 
    celltxt = ActiveCell.Offset(0, -5).Text 
    If InStr(1, celltxt, "Dagligvare") Then 
     Range("C9") = 3 
    Else 
     MsgBox ("Nope") 
    End If 
End Sub 
+1

你被偏移定义单元格的正确activecell;这意味着它是相对于活动单元计算的。按下按钮之前,你确定你总是在正确的单元格上吗? –

+0

你知道'InStr()'默认是区分大小写吗?因此'Dagligvare'和'dagligvare'会得出不同的结果 –

+0

考虑'Worksheet_Change'事件,这将触发每次您在工作表中的变化的时间,但也可以在只有某些细胞发生变化仅限于射击。或者考虑一个简单的公式“IF”声明并完全废除VBA(说不知道你的努力的全部范围)。 –

回答

1

你可以添加一个进一步的msgbox,以确保用户有

Private Sub CommandButton1_Click() 
    Dim celltxt As String 

    if (activecell.column = 10) then '<<change 10 to appropriate column 

     celltxt = ActiveCell.Offset(0, -5).Text 
     If InStr(1, celltxt, "Dagligvare") Then 
      Range("C9") = 3 
     Else 
      MsgBox ("Nope") 
     End If 
    else 
      MsgBox ("Oi! You need to have a cell in column 10 selected") 
    end 

End Sub