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,我不是一个编码员,对这个群体来说是新的。我无耻地从这里的帖子中盗取了下面的代码: 不过我有个问题。我有一堆粘贴的公式作为文本,我需要,基本上,点击进出,以使他们的公式(可以解释为什么我这样做,如果需要的话)。代码工作得很好。但是,它不会贯穿整个文档。它通常在1000行左右后停止 我需要它做的是单击D列中包含数据的所有行(在本例中,是通过D42000)。以下是我尝试过的代码的当前版本: ` 下一个 端接头 " 我试过几种不同的方法,但效果相同。我做错了什么 提前谢谢 将值(如“=A1”转换为公式=

我不是一个编码员,对这个群体来说是新的。我无耻地从这里的帖子中盗取了下面的代码:

不过我有个问题。我有一堆粘贴的公式作为文本,我需要,基本上,点击进出,以使他们的公式(可以解释为什么我这样做,如果需要的话)。代码工作得很好。但是,它不会贯穿整个文档。它通常在1000行左右后停止

我需要它做的是单击D列中包含数据的所有行(在本例中,是通过D42000)。以下是我尝试过的代码的当前版本:

` 下一个

端接头 "

我试过几种不同的方法,但效果相同。我做错了什么


提前谢谢

将值(如
“=A1”
转换为公式
=A1
的简单方法如下


将诸如
“=A1”
之类的值转换为公式
=A1
的简单方法如下


(a) 当宏在后台运行时,当它运行并单击另一个应用程序时,您是否感到厌烦?这将导致击键被发送到另一个应用程序。(b) 如果你没有感到无聊,那么Excel可能是。尝试将
DoEvents
放入循环中。(c) 如果所有公式都以“=”开头,而计算值都不以“=”开头,则可以使用
如果左(c.Value,1)=“=”然后使用c.Formula=c.Value
将当前文本值转换为公式,从而避免
SendKeys
。太棒了!非常感谢你!下面的代码非常有效:“Sub clickinout()Sheets(“Sheet3”)。为Rng中的每个c选择Set Rng=Range(“Sheet3!d1:d42000”)。单元格如果左侧(c.Value,1)=“=”,则c.Formula=c.Value下一个范围(“d1”)。选择End Sub“如果您将该代码粘贴为“自我回答”,可能是最好的选择。这样,如果其他任何人将来有类似的问题,并且去寻找解决方案,他们可能会找到你的问题和相关的答案。(如果我在一两天内没有看到答案,我会自己把它作为答案发布。)(a)当宏在后台运行时,当它运行并点击另一个应用程序时,你是否感到厌烦?这将导致击键被发送到另一个应用程序。(b) 如果你没有感到无聊,那么Excel可能是。尝试将
DoEvents
放入循环中。(c) 如果所有公式都以“=”开头,而计算值都不以“=”开头,则可以使用
如果左(c.Value,1)=“=”然后使用c.Formula=c.Value
将当前文本值转换为公式,从而避免
SendKeys
。太棒了!非常感谢你!下面的代码非常有效:“Sub clickinout()Sheets(“Sheet3”)。为Rng中的每个c选择Set Rng=Range(“Sheet3!d1:d42000”)。单元格如果左侧(c.Value,1)=“=”,则c.Formula=c.Value下一个范围(“d1”)。选择End Sub“如果您将该代码粘贴为“自我回答”,可能是最好的选择。这样,如果其他任何人将来有类似的问题,并且去寻找解决方案,他们可能会找到你的问题和相关的答案。(如果我在一两天内没有看到答案,我会自己把它作为答案发布。) Sub clickinout() Sheets("Sheet3").Select

Set Rng = Range("Sheet3!D1:d42000")

For Each c In Rng.Cells

    c.Select
    SendKeys "{F2}"
    SendKeys "{ENTER}"
    Selection.NumberFormat = "General"
Sub clickinout()
    Dim c As Range
    For Each c In Worksheets("Sheet3").Range("D1:D42000").Cells
        If Left(c.Value, 1) = "=" Then
            c.Formula = c.Value
        End If
    Next
End Sub