Excel 在单元格中处于活动状态时运行宏?
我有下面的代码。我想让光标在单元格中处于活动状态,运行宏,让vba将句点字符串放到剪贴板上,然后将它们粘贴到光标处于活动状态的单元格中。这能做到吗Excel 在单元格中处于活动状态时运行宏?,excel,vba,Excel,Vba,我有下面的代码。我想让光标在单元格中处于活动状态,运行宏,让vba将句点字符串放到剪贴板上,然后将它们粘贴到光标处于活动状态的单元格中。这能做到吗 Dim obj As New DataObject Dim txt As String 'Put some text inside a string variable txt = ".............................." 'Make object's text equal above string variable
Dim obj As New DataObject
Dim txt As String
'Put some text inside a string variable
txt = ".............................."
'Make object's text equal above string variable
obj.SetText txt
'Place DataObject's text into the Clipboard
obj.PutInClipboard
查看最后一个问题,您可以使用
工作表\u Change
事件在每次编辑后将句点添加到字符串末尾
如果此路线可行,您可以对其进行一定程度的自定义。例如,现在宏会忽略导致单元格为空的任何更改(即,您仍然可以使用正常功能清除单元格)。根据@BigBen的建议,宏也会忽略同时应用于多个单元格的更改(即,将一个范围粘贴到工作表中)。您还可以修改此设置,使其仅在更改的单元格位于某一行/列时触发。等等
查看最后一个问题,您可以使用
工作表\u Change
事件在每次编辑后在字符串末尾添加句点
如果此路线可行,您可以对其进行一定程度的自定义。例如,现在宏会忽略导致单元格为空的任何更改(即,您仍然可以使用正常功能清除单元格)。根据@BigBen的建议,宏也会忽略同时应用于多个单元格的更改(即,将一个范围粘贴到工作表中)。您还可以修改此设置,使其仅在更改的单元格位于某一行/列时触发。等等
在单元格内处于编辑模式时,无法运行代码。您最好显示某种类型的消息框,让用户选择要插入一系列句点的位置。可能是双击更改事件?我相信有几种方法可以做到这一点,但您需要在这里修改逻辑。是否有一种模式可用于确定应在何处输入期间?您还可以在每次编辑结束时添加一个更改事件?我确实发现这可能很有趣,但总体而言,这种方法看起来有些过火。我坚持我对你的第一篇文章的评论,你的问题是故意的。找到一种更好的跟踪历史的方法,这样你就不必处理这样的问题。祝你好运在单元格内处于编辑模式时不能运行代码。您最好显示某种类型的消息框,让用户选择要插入一系列句点的位置。可能是双击更改事件?我相信有几种方法可以做到这一点,但您需要在这里修改逻辑。是否有一种模式可用于确定应在何处输入期间?您还可以在每次编辑结束时添加一个更改事件?我确实发现这可能很有趣,但总体而言,这种方法看起来有些过火。我坚持我对你的第一篇文章的评论,你的问题是故意的。找到一种更好的跟踪历史的方法,这样你就不必处理这样的问题。祝你好运如果Target.CountLarge>1,那么也可以退出Sub。@BigBen谢谢-我从未使用过
CountLarge
,很高兴知道。更新!如果Target.CountLarge>1,那么也可以退出Sub。@BigBen谢谢-我从未使用过CountLarge
,很高兴知道。更新!
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge = 1 Then
If Len(Target) > 0 Then
Application.EnableEvents = False
Target = Target & "......"
Application.EnableEvents = True
End If
End If
End Sub