Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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单元格中自动插入1?_Excel_Vba - Fatal编程技术网

如何在excel单元格中自动插入1?

如何在excel单元格中自动插入1?,excel,vba,Excel,Vba,我希望能够在选中时将值1放入excel单元格中。未选择的单元格仍为空。ActiveCell将使用当前选定的单元格,然后,如您所见,它将值1分配给该单元格 ActiveCell.value = 1 如果你想让它更模块化,如果它发生了很多次,那么考虑一下改变事件,正如@Tom所建议的那样,我真的不建议你这样做,特别是如果这是为了监控你的股票,所以这次我写这篇文章只是为了让你这样做更安全一点,但我不建议你这样做 您需要将其粘贴到与之相关的工作表模块中 Private Sub Worksheet_Se

我希望能够在选中时将值1放入excel单元格中。未选择的单元格仍为空。

ActiveCell
将使用当前选定的单元格,然后,如您所见,它将值1分配给该单元格

ActiveCell.value = 1

<>如果你想让它更模块化,如果它发生了很多次,那么考虑一下改变事件,正如@Tom所建议的那样,我真的不建议你这样做,特别是如果这是为了监控你的股票,所以这次我写这篇文章只是为了让你这样做更安全一点,但我不建议你这样做

您需要将其粘贴到与之相关的工作表模块中

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    If Target.Columns.Count = 1 And Target.Rows.Count = 1 And Target.Column = 2 Then
        Target.Value = 1
    End If
End Sub
要进入工作表模块,您需要进入vba编辑器(windows上的快捷方式Alt+F11)并粘贴到正确的工作表模块(注意突出显示的工作表)

我警告您,这可能会很快导致您的库存水平不准确,因为每当您单击单元格或使用箭头键在工作表中移动时,这将运行。这可能会弄乱整个系统,无法撤消(vba会擦除撤消内存)

更好的做法是在excel中监控您的确切库存水平,然后使用以下公式(假设您将库存水平保留在c列中)


然后,这将自动准确地表示它是否有库存。

看看变化事件,并将您尝试过的内容放在上面,我对vba/excel非常陌生,有一个电子表格,在a列中有库存项目,如果我们有库存,我们在b列中输入1,但如果我使用触摸键盘输入1,则需要很长时间,因此我希望能够只单击b列中的相关单元格,并填充1。谢谢Tom,如果要添加更多自动插入1的列,如何指定列。另外,我知道这有点厚颜无耻,不管怎样,我可以将1改为一个刻度,如何计算某一行中有多少个刻度。假设Column1是项目,然后我有多个1或Ticks列,然后是一个lst列来添加行。我可以将其应用于某个单元格范围吗?比如说24行32列,然后将第33列作为每行的总数。谢谢MichaelYou,您需要修改
If
条件,使其成为
…或Target.Column=xx
这样做会为您自己打开更多的陷阱门。您可以使用excel和wingdings中的格式来替换刻度范围内的所有
1
。使用自定义格式
[=1]“ü”;“ā”
并将字体更改为范围上的wingdings,感谢Tom在另一个电子表格上实际使用了它,我们用于接受订单。我是否可以指定它所应用的单元格而不是整个电子表格?@MichaelGriffin更改事件关注整个工作表。但是,如果您更改“if”的条件,您将能够查看特定范围。在我的示例中,它设置为首先确保您只选择了一个单元格而不是一个范围。然后,在第2(B)列中,通过更改,您可以让它查看工作表的任何一方,正如我所说的,我对vba非常陌生,希望了解,如果我希望它仅适用于一系列单元格,例如B3到D24,我将如何做?现在一切都有点混乱,刚买了一本vba的书来通读,希望它会变得更清晰??
=IF(C1>0, B1=1, B1=0)