大家好,我有大量数据,每周更新两次。数据集不断缩小和增长。
我的问题是,虽然我很容易手动删除或扩展使数据可用的公式,但我想自动化这个过程。
这些公式涵盖 10 列。
好的 - 需要帮助,我似乎无法理解 Worksheet_change - 请帮助。
该工作表名为“数据”。
我正在使用名为“task no”的 Col A 来扩展公式。
公式在 Y 到 AJ 列中。
我想要的只是将自己扩展到行中最后一个条目的公式 - 听起来很简单??????
按目前覆盖 30,000 行的数据,
另一件事是,使用复制和粘贴宏将数据导入电子表格,这是否部分导致了我的问题?
在 13.30 插入
这是我尝试过的
Sheets("data").Select
Bot = Range("A3").End(xlDown).Row
Range("Y30000", "AJ30000").Select
Range("Y30000", "AJ30000").Copy
Selection.AutoFill Destination:=Range("Y30001" & Bot &, ":AJ30001" & Bot),
Type:=xlFillDefault
请帮助(再次)
最佳答案
我可以想到两种方法,一种直接使用 Excel,另一种使用 VBA。
测试场景:
假设我们有包含可变数据的 A 和 B 列,然后是包含公式的 C 和 D 列(一旦您在后台登录,包含公式的列的数量就不重要了)。
此外,我们在 C 列中的公式为 =A+B,在 D 列中为 =A-B(C1=A1+B1,D1=A1-B1 等)。
电子表格:
VBA:
希望它能指导您解决问题!
编辑:
执行此操作的 VBA 公式将是这样的......
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lCellCount As Long
Dim lFormulaCount As Long
Dim oWorkSheet As Excel.Worksheet
Dim oRangeSource As Excel.Range
Dim oRangeDest As Excel.Range
'Define sheet
Set oWorkSheet = Worksheets("Data")
'Count how many entries we have in our dataset now
lCellCount = oWorkSheet.Range("A1").End(xlDown).Row
'Count how many formulas we have to proper delete
lFormulaCount = WorksheetFunction.CountA(oWorkSheet.Columns("Y"))
If lCellCount <> lFormulaCount Then
'I assume we'll have at least one line in our report...
If lFormulaCount > 2 Then oWorkSheet.Range("Y3:AJ" & lFormulaCount).ClearContents
Set oRangeSource = oWorkSheet.Range("Y2:AJ2")
Set oRangeDest = oWorkSheet.Range("Y2:AJ" & lCellCount)
oRangeDest.Formula = oRangeSource.Formula
End If
End Sub
Rgds
关于excel - 数据扩展时自动复制公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498065/