所以我有这个问题,在Excel中创建一个按钮来恢复所有公式。这些公式都基于这一个单元格,目前 A26 (=Demand!A2)
。但由于行号将来会发生变化,因此代码目前还不够强大。
它需要做的是输入 标题'命名为" FCST_ID
"以下公式: =Demand!A2
。 (请记住它不是一个表格)之后应该选择整行,根据 =Demand!A2
单元格填充许多公式,然后将其完全拉到第6000行。
当我尝试使用宏并选择单元格A26
时,它会起作用,但是如果此单元格将更改为A25
,则此功能不足以使模型足够强大。所以我现在要做的就是录制一个查找“标题”的宏。 FCST_ID
然后向下移动一个单元格,填充公式,然后从该行中下拉所有公式,直到第6000行。
非常感谢任何帮助!
Cells.Find(What:="FCST_ID", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate .Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=Demand!R[-24]C"
Range("A26").Select
Range(Selection, Selection.End(xlToRight)).Select
Range("A26:EU26").Select
ActiveWindow.SmallScroll ToRight:=2
Selection.AutoFill Destination:=Range("A26:EU6000"), Type:=xlFillDefault
Range("A26:EU6000").Select
答案 0 :(得分:1)
这是你正在尝试的(未经测试)?我假设FCST_ID
在Col A。
Sub Sample()
Dim ws As Worksheet
Dim lRow As Long
Dim aCell As Range
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lRow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Set aCell = .Cells.Find(What:="FCST_ID", LookIn:=xlValues, _
Lookat:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
aCell.Offset(1).Formula = "=Demand!A2"
.Range("A" & (aCell.Row+1) & ":EU" & (aCell.Row+1)).AutoFill _
Destination:=.Range("A" & (aCell.Row+1) & ":EU" & lRow), Type:=xlFillDefault
End If
End If
End With
End Sub