excel - 搜索行,在标题中找到“搜索”名称下方创建公式,将公式复制到最后一行
问题描述
从单元格 B5 开始,在 ROW 中搜索“当前月份”。在此列中,从“当前月份”标题下方的单元格(这次是 L6)开始,创建一个引用该列左侧一列的公式,“=K6”。
此公式将沿列向下继续,直到最后一行。由于每月都会添加最新的月份财务结果,因此该列将每月更改。目前,MainAccount、DEPT、Dep Lookup、PROD、PROD_LINE、RD_CAT、1 月、2 月、3 月、4 月、当前月份和 YTD 是当前标题,因为我正在处理 4 月月底的结果。“当前月份”目前在工作表的 L 列中,下个月将在 M 列中。基本上,这为我提供了当前月份的费用,这些费用将用于更新我不必更改的各种数据透视表每个月的月度数据。
我想我被代码的 ActiveCell 部分绊倒了,但我不确定。
Range "B5").Select Range(Selection, Selection.End xltoRight)).Select
Selection.Find(What:="Current Month", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(1).Select
ActiveCell.FormulaR1C1 = "=RC[-1]"
LR2 = Cells(Rows.Count, "A").End(xlUp).Row
Set Rng2 = Range(ActiveCell & LR2)
ActiveCell.Select
Selection.Copy
Rng2.Select
ActiveSheet.Paste
在当前月份列中,应该有一个公式一直向下引用上个月的页面。在这种情况下,当前月份标题位于 L5,公式将从 L6 开始,即 =k6,然后向下复制到最后一行,它只会将公式复制到空行中,这样我就不会丢失我的标题,因为工作表上有许多范围与数据透视表相关联。
解决方案
将您的查找分配给一个范围变量,然后复制整个列,偏移 1 列,然后插入。
Dim fHdr As Range, LR2 As Long
With ThisWorkbook.Sheets("Sheet1") '
Set fHdr = .Cells.Find(What:="Current Month", After:=.Cells(5, 2), _
LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False)
LR2 = Cells(Rows.Count, "A").End(xlUp).Row
If fHdr Is Nothing Then
Exit Sub
Else
With fHdr
.Offset(1, 1).Resize(LR2 - 2).FormulaR1C1 = "=RC[-1]"
End With
End If
End With
推荐阅读
- c# - 从 SQLite 数据库获取最大值时没有出现当前行消息
- powershell - 如何检查 foreach 循环中的错误代码?
- git - 一个分支,在gitlab上删除了,还在命令行中?
- typescript - 打字稿与数据库的连接
- android - PlusShare 类已弃用。有没有其他替代方法可以从 android 应用程序在 google Plus 上分享?
- python - Python:如何在两个列表中引用相同的索引值位置?
- c# - Task.Run 然后使用异步等待 ContinueWith 在主线程替代上调用?
- python - NameError:在 wsadmin cli 实用程序的 jython 中使用布尔值时为真
- javascript - 刷新没有布局的div
- python - 使用带有 git clean 过滤器的黑色