Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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,我有下面的代码。我想让光标在单元格中处于活动状态,运行宏,让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

我有下面的代码。我想让光标在单元格中处于活动状态,运行宏,让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

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