Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
创建onclick事件以在Excel中追加字符串_Excel_Vba_Macros_Onclick - Fatal编程技术网

创建onclick事件以在Excel中追加字符串

创建onclick事件以在Excel中追加字符串,excel,vba,macros,onclick,Excel,Vba,Macros,Onclick,我的学校有一个由成绩负责人填写的守时电子表格(excel)。为了确定他们每天迟到了多少课,他们在单元格中添加了适当数量的X 这当然需要选择单元格,双击,添加X,然后移动到下一个单元格。。。通常,他们每天可以输入200多个条目,这相当耗时 我想写一个点击事件,这样当用户点击(或双击)给定范围内的单元格时,它会自动在该单元格字符串中添加一个X 如果可能的话,在一周内这将节省大量的时间 我必须承认,我不确定如何在Excel中启动此功能,尽管我能够使用VB.NET和VBA进行访问 我知道这可以通过大约1

我的学校有一个由成绩负责人填写的守时电子表格(excel)。为了确定他们每天迟到了多少课,他们在单元格中添加了适当数量的X

这当然需要选择单元格,双击,添加X,然后移动到下一个单元格。。。通常,他们每天可以输入200多个条目,这相当耗时

我想写一个点击事件,这样当用户点击(或双击)给定范围内的单元格时,它会自动在该单元格字符串中添加一个X

如果可能的话,在一周内这将节省大量的时间

我必须承认,我不确定如何在Excel中启动此功能,尽管我能够使用VB.NET和VBA进行访问


我知道这可以通过大约1000个宏按钮来实现,但肯定有更好的方法。

打开VBA编辑器,Alt+F11

双击左侧窗口中要使用此功能的工作表

复制粘贴:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Target.Value = "x" ' if you want to replace the value in the cell with x
    Target.value = Target.Value & "x" ' if you want to add one x to the value of the cell

End Sub
删除您认为不适合您需要的行


关闭VBA编辑器并将文件另存为宏激活excel文件(xlsm)。

打开VBA编辑器,Alt+F11

双击左侧窗口中要使用此功能的工作表

复制粘贴:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Target.Value = "x" ' if you want to replace the value in the cell with x
    Target.value = Target.Value & "x" ' if you want to add one x to the value of the cell

End Sub
删除您认为不适合您需要的行


关闭VBA编辑器并将文件另存为宏激活excel文件(xlsm)。

您可以这样做:

打开VBA(Alt+F11)

从左侧的窗口打开要使用此功能的工作表

然后粘贴:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B5")) Is Nothing Then _
  Range("B5") = "X"
End Sub

您可以通过更改“B5”来控制范围。目前,当您单击B5时,它只会添加“X”。

您可以这样做:

打开VBA(Alt+F11)

从左侧的窗口打开要使用此功能的工作表

然后粘贴:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B5")) Is Nothing Then _
  Range("B5") = "X"
End Sub

您可以通过更改“B5”来控制范围。目前,当您单击B5时,它只会添加“X”。

最好的方法是使用带有快捷键的宏

子地址()


最好的方法是使用带有快捷键的宏

子地址()


私有子工作表\u在双击之前(ByVal Target作为范围,Cancel作为布尔值)私有子工作表\u在双击之前(ByVal Target作为范围,Cancel作为布尔值)所有人都认为这个答案让你开始了,我想指出,
Target.Value=“X”
实际上应该是
Target.Value=Target.Value&“X”
如果你想附加X,你认为他的问题是附加吗?在一个单元格中表示
xx
?在阅读问题时,似乎有学生的专栏和课程的行。一行有两个x听起来很奇怪。但你是对的。如果用户想要追加,这是正确的方法。我认为是的,op所说的“将适当数量的X追加到单元格”是指他想要将多个X放入一个单元格中。。但是数字,可能只是一个打字错误…现在我想起来了。。。你可能是对的。否则你为什么要双击单元格?单击就是“替换”,OP说双击几次。所有人都认为这个答案让你开始了。我想指出,
Target.Value=“X”
实际上应该是
Target.Value=Target.Value&“X”
如果你想附加这个X,你认为他的问题是附加吗?在一个单元格中表示
xx
?在阅读问题时,似乎有学生的专栏和课程的行。一行有两个x听起来很奇怪。但你是对的。如果用户想要追加,这是正确的方法。我认为是的,op所说的“将适当数量的X追加到单元格”是指他想要将多个X放入一个单元格中。。但是数字,可能只是一个打字错误…现在我想起来了。。。你可能是对的。否则你为什么要双击单元格?单击一次就是“替换”,OP显示双击几次。