根据另一张表中的数据填写公式
Posted
技术标签:
【中文标题】根据另一张表中的数据填写公式【英文标题】:Fill Down Formula based on data in another sheet 【发布时间】:2016-05-16 14:06:04 【问题描述】:我想构建一个宏来填写公式。正在从网站复制数据并分别粘贴到Sheet1
。 Sheet2
包含用于清理和排列数据的公式,包括根据标准消除行。问题是,如果我在消除行之前填写公式,我会收到 #REF
错误。我想在宏中包含填充,因为我已经有一个可以删除行。我不想用字符 160 代替实际空间。我的宏放在下面。
代码:
Sub chng()
Dim x As Long, lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For x = lastrow To 1 Step -1
If Cells(x, 2).Value = "SA" Or Cells(x, 2).Value = "EVC" Then
Rows(x).Delete
End If
Next x
Application.ScreenUpdating = False
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Application.ScreenUpdating = True
Range("A1").Select
End Sub
换句话说,我想要完成的是,一旦我完成粘贴信息,运行宏,删除行,将字符 160 更改为实际空间,然后计算 Sheet1
上的行数(不包括标题)并填充以 sheet2
为基础,例如如果我有 140 行数据,我想从第 2 行向下填充到 141。
【问题讨论】:
【参考方案1】:您可以捕获行数并为您删除的每一行递减它,然后使用该范围:
Dim x As Long, lastrow As Long, totalRows As Long
totalRows = lastrow
Rows(x).Delete
totalRows = totalRows - 1
然后,您可以将公式从第 2 行复制到 totalRows,无论它是什么列。
【讨论】:
编辑此部分: Dim x As Long, lastrow As Long, totalRows As Long lastrow = Cells(Rows.Count, 1).End(xlUp).Row totalRows=lastrow For x = lastrow To 1 Step -1 If Cells(x, 2).Value = "SA" Or Cells(x, 2).Value = "EVC" Then Rows(x).Delete totalRows = totalRows - 1 End If Next x 格式可能是这条评论有点奇怪。您是否已经有用于复制公式的代码?以上是关于根据另一张表中的数据填写公式的主要内容,如果未能解决你的问题,请参考以下文章
如何把一个excel表中的公式粘贴到另一张表上?我用的2007版本的。