Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
VBA仅复制列并将公式(而不是值)粘贴到下一列_Vba_Excel - Fatal编程技术网

VBA仅复制列并将公式(而不是值)粘贴到下一列

VBA仅复制列并将公式(而不是值)粘贴到下一列,vba,excel,Vba,Excel,VBA仅复制列并将公式(而不是值)粘贴到下一列 电子表格B列包含值和公式的随机组合。我想使用VBA将该列复制到下一列中,只将公式(而不是值)复制到C列中。我可以使用下面的VBA取得一些成功,但它将超过B的每一列复制到无穷远(我希望它在第一列之后停止复制) 试试这个简单的宏,让我知道它是否有效 Sub Copy_Column_Formulas_NOvalues() Dim i As Long, j As Long For i = 1 To Sheets("Sheet3").Cells(Rows.C

VBA仅复制列并将公式(而不是值)粘贴到下一列

电子表格B列包含值和公式的随机组合。我想使用VBA将该列复制到下一列中,只将公式(而不是值)复制到C列中。我可以使用下面的VBA取得一些成功,但它将超过B的每一列复制到无穷远(我希望它在第一列之后停止复制)


试试这个简单的宏,让我知道它是否有效

Sub Copy_Column_Formulas_NOvalues()
Dim i As Long, j As Long
For i = 1 To Sheets("Sheet3").Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, 2).HasFormula Then
   Cells(i, 3) = Cells(i, 2).Formula
End If
Next i
End Sub

根据需要更改
Sheet3
名称。

删除
.End(xlToRight)
。实际更改
范围(单元格偏移(,1),单元格偏移(,1)。结束(xlToRight))
单元格偏移(,1)
我将“Sheet3”更改为我的工作表名称。我将“B”改为我想要复制“W”的列(复制到“X”),然后运行它。它花了一段时间,但没有按要求复制。看起来它仍然将B复制到C中。
IF
条件仍然只检查B列的值。它应该在W列中搜索并粘贴到X。根据更改公式我将“Sheet3”更改为我的工作表名称。我将“B”改为我想要复制“W”的列(复制到“X”),然后运行它。它花了一段时间,但没有按要求复制。看起来它仍然把B复制到C。所以我把“2”改成了列号“23”(这是W列),把“3”改成了“24”(这是X列),它成功了。。。。需要一点时间,但做我需要的@太棒了!!在if语句中,你能用字母代替数字吗?
Sub Copy_Column_Formulas_NOvalues()
Dim i As Long, j As Long
For i = 1 To Sheets("Sheet3").Cells(Rows.Count, "B").End(xlUp).Row
If Cells(i, 2).HasFormula Then
   Cells(i, 3) = Cells(i, 2).Formula
End If
Next i
End Sub