Excel点击销售表单按钮

时间:2017-04-26 00:19:35

标签: excel-vba vba excel

我是编码的新手,我正试图在商店为我的小吃Shack设置一个简单的POS。代码有效,但我有很多东西要卖。我有主线宏来定位按钮,我只是想知道是否有一种方法将结果从cs输入到.Range()这样我就不必在每一行手动更改代码,而不是只有一个代码将自动找到按钮并自动选择单元格并输入其值。

Sub btn1_Click2()
Static value As Integer
value = value + 1
'Mainlineup Macro
Dim b As Object, cs As Integer
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell
cs = .Row
End With
Worksheets(1).Range("D$").value = value
End Sub

1 个答案:

答案 0 :(得分:0)

努力!你应该从你开始考虑细胞及其价值的角度来帮助它。每个细胞都是一个“范围”,但不是 - 远远叹息 - 每个范围都是细胞。

首先将保留字“Value”的使用转为Excel。如果您使用相同的单词来标识您的某个变量,则会对您和Excel产生混淆。 Excel中会出现无法解释的“错误”。

Range("D$")未定义单元格,因为单元格同时具有行和列。该术语将引发错误,这是可预测的,因为该术语既不定义范围也不定义单元格。

当你在VBA中定义一个单元格时,我建议你使用row&用于定义它的列,如ActiveSheet.Cells(3, 5),即工作表用语中的“E3”。 VBA确实理解ActiveSheet.Range("E3")。所以真正的问题是你是否这样做。一旦你开始使用Row& amp;操纵细胞和范围。列更容易,因为它比名称更容易计算数字。

不幸的是,我不明白你的意图。但是,通过为单元格的Value属性赋值,您就处于正确的轨道上。您还可以为范围的Value属性指定值,但Range("D:D").Value = 4会为D列中的每个单元格指定相同的值。

也许这就是你的想法。 Worksheets(1).Range("D" & Cstr(cs))).Value = value。我会这样写:Worksheets(1).Cells(cs, 4).Value = value。也许Worksheets(1).Cells(cs, "D").Value = value可能是妥协。

为了以防万一,我指出b.TopLeftCell是一个单元格(因此也是一个范围),因此具有Value属性。像Worksheets(1).Cells(cs, 4).Value = b.TopLeftCell.Value这样的代码是完全合法的,并按照它的外观做你期望它做的事。