Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Formula - Fatal编程技术网

Vba将公式拖放到单独范围的底部

Vba将公式拖放到单独范围的底部,vba,loops,formula,Vba,Loops,Formula,我想把一个公式(a列)放到一个单独范围(H列)的底部。我的数据集非常大,因此希望在选定范围的顶部删除公式并粘贴特殊值 理想情况下,如果可能的话,我想创建一个循环,这样文件就不会花费很长时间来填充所有公式 抱歉,如果这已经在另一篇文章中涉及,这是我第一次发帖。到目前为止使用的代码如下 Sub CC_no() Sheets("Data").Select Dim rng As Range, cell As Range Dim N As Long N = Cells(Rows.

我想把一个公式(a列)放到一个单独范围(H列)的底部。我的数据集非常大,因此希望在选定范围的顶部删除公式并粘贴特殊值

理想情况下,如果可能的话,我想创建一个循环,这样文件就不会花费很长时间来填充所有公式

抱歉,如果这已经在另一篇文章中涉及,这是我第一次发帖。到目前为止使用的代码如下

Sub CC_no()

Sheets("Data").Select

Dim rng As Range, cell As Range
Dim N As Long

N = Cells(Rows.Count, "H").End(xlUp).Row
Set rng = Range("A2:A" & N)
Set cell = Range("H2:H" & N)

For Each cell In rng

Next cell

rng = "=VLOOKUP(H2,'PPD Data'!$K:$AZ,42,0)"

Sheets("Data").Select
Range("A2:A" & N).Select
Application.CutCopyMode = False
Selection.Copy
Range("A2:A" & N).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

Call Brand

End Sub
Sub Brand()

Sheets("Data").Select

Dim rng As Range, cell As Range
Dim N As Long

N = Cells(Rows.Count, "H").End(xlUp).Row
Set rng = Range("B2:B" & N)
Set cell = Range("H2:H" & N)

For Each cell In rng

Next cell

rng = "=VLOOKUP(A2,Cost_centre_data!$B:$J,7,0)"

Sheets("Data").Select
Range("B2:B" & N).Select
Application.CutCopyMode = False
Selection.Copy
Range("B2:B" & N).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False


End Sub

实际上不需要复制任何内容,只需将公式一次写入所有单元格:

Dim ws As Worksheet   ' define your worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")

Dim LastRowL As Long   ' find last used row in column L
LastRowL = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row

' write your formula to the entire range Excel adjusts H2 in the formula automatically for each row
ws.Range("A2", "A" & LastRowL).Forumla = "=VLOOKUP(H2,'PPD Data'!$K:$AZ,42,0)"

你说的“放弃一个公式”是什么意思?把它抄下来?如果是,到目前为止您尝试了什么?你重播了什么请注意,因为这不是免费的代码编写服务,所以您有必要展示您迄今为止所做的尝试以及遇到的问题或错误(通过展示代码),或者至少展示您所做的研究和努力。否则它只是要求我们为你做所有的工作。阅读可能会帮助你改进你的问题。抱歉,我不是很清楚。是的,如果范围(列L)中有数据,我想复制公式(列A)。这更像是一个问题,需要一些建议,这是我目前为one公式设置的代码,但必须添加范围的末尾。理想情况下,我希望它复制下来,直到L列中没有数据。使用当前使用的代码编辑帖子。根据数据制作表格。公式将在您添加数据时自动添加。谢谢,我无法使代码的底线正常工作,但已成功复制了两列的公式。有没有一种简单的方法将其写入1个子系统,而不是像上面那样调用子系统?用工作日志编辑了这篇文章script@G.Parker我所展示的是正确的方式。如果您有问题要解决,请告诉我们到底发生了什么,哪些不起作用您可能会从使用
阅读代码中获益。Select
不可靠,有时可以工作,有时则不行。