Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel单击销售表单按钮_Excel_Vba - Fatal编程技术网

Excel单击销售表单按钮

Excel单击销售表单按钮,excel,vba,Excel,Vba,我对编码还不熟悉,我正在尝试为我在店里的小吃店设置一个简单的POS机。代码是有效的,但我有很多东西要卖。我有一个主线宏来定位按钮,我只是想知道是否有一种方法可以将结果从cs输入到.Range(),这样我就不必手动更改每行的代码,而不用一个代码来自动定位按钮并自动选择单元格并输入其值 Sub btn1_Click2() Static value As Integer value = value + 1 'Mainlineup Macro Dim b As Object, cs As Integer

我对编码还不熟悉,我正在尝试为我在店里的小吃店设置一个简单的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

干得好!你应该从细胞及其价值的角度来思考,这应该会有所帮助。每个细胞都是一个“范围”,但并非每个范围都是一个细胞

首先,将保留字“Value”的使用让给Excel。如果您使用同一个词来标识一个变量,您和Excel都会感到困惑。Excel中将存在无法解释的“错误”

Range(“D$”
不定义单元格,因为单元格既有行也有列。该术语将抛出一个错误,这是可以预测的,因为该术语既不定义范围也不定义单元格

当您在VBA中定义单元格时,我建议您使用行和列来定义它,如
ActiveSheet.Cells(3,5)
在工作表术语中是“E3”。VBA确实理解
ActiveSheet.Range(“E3”)
。所以真正的问题是你是否这样做。一旦开始使用行和列来操作单元格和区域,就会容易得多,因为计算数字要比计算名称容易得多

不幸的是,我不明白你的意图。但是,通过为单元格的
value
属性指定一个值,您的做法是正确的。您也可以为范围的
value
属性指定一个值,但
range(“D:D”)。value=4
将为D列中的每个单元格指定相同的值

也许这就是你的想法<代码>工作表(1)。范围(“D”和Cstr(cs))。值=值。我会这样写:
工作表(1).Cells(cs,4).Value=Value
。也许
工作表(1)。单元格(cs,“D”)。Value=Value
将是一种折衷方案


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

我非常感谢你的帮助。实际上我有.Range(“D2”)。按钮使用我的代码完成了它的工作。我只想要一个宏,可以用于所有按钮。多亏了你的帮助,我完成了这件事。最后,我将代码重写为:
Sub btn1\u Click2()
静态值为整数
'Mainlineup宏
Dim b As Object,cs As Integer
设置b=ActiveSheet.butions(Application.Caller)
带b.TopLeftCell
以值=工作表(1)结尾。单元格(cs,5)。值+1
工作表(1)。单元格(cs,5)。值=值