【问题标题】:macro for copy and paste into next empty row for columns B-S用于复制并粘贴到 B-S 列的下一个空行的宏
【发布时间】:2019-03-05 20:04:29
【问题描述】:

我有一份连续的月度报告,用于说明我们的销售额。 每天,我都会在一份报告中了解每个分支机构的销售额。我在单元格 E1 中保存了一个 Vlookup 公式,该公式将根据我正在处理的内容将报告中的信息拉到另一张表中。我可以复制 E1 并粘贴到具有 B-S 列范围的行中的每个单元格中,然后我再次复制该行并粘贴值,这样它就不会改变我的金额。第二天,我在下一行重复这个过程,这样它就可以为我提供每个分支机构的每月运行总数,然后是整个公司。我的每月图表总是大约 23 行。(excel 中的第 6-28 行)

我需要一个可以执行以下操作的宏: 第一次,我运行宏,它将复制我的单元格 E1 并将其粘贴到 B6 - S6 行,然后复制该行并粘贴该行的值。 然后在本月 2 日,我运行宏并重复,但在 B7-S7 行。 然后在本月 3 日,我运行宏并重复,但在 B8-S8 行。

这可能吗?

这就是我录制宏时所拥有的。

Sub Charges()
'
'Charges Macro
'Run Formula for charges
'
' Keyboard Shortcut: Ctrl+Shift+C
'
    Range("E1").Select
    Selection.Copy
    Range("B8:S8").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
 End Sub

【问题讨论】:

  • 您可以在 VBA 中使用VLOOKUP 函数,这样您就不需要将公式存储在单元格 E1 中。另外,我知道这段代码取自宏记录器,但您想避免使用 .Select.Activate
  • 所以我对基本的 excel 没问题,但这远高于我,所以我所做的一切/学习只是通过谷歌搜索。 :) 我在一家习惯于手工做所有事情的公司工作,所以目前我们从每天早上打印的大型报告中将每个值输入到 Excel 中的每个单元格中。今天我终于从 IT 部门得到了一份 Excel 格式的报告,我正在尝试自动将信息从一个 Excel 报告转移到另一个工作簿以供我们的销售。

标签: excel vba


【解决方案1】:

也许是这个?您可以直接传输值,无需复制和粘贴。

阅读this,了解如何通过避免选择/激活来提高代码效率。

Sub Charges()

Dim n As Long

n = WorksheetFunction.Max(6, Range("B" & Rows.Count).End(xlUp).Row + 1)

Range("B" & n & ":S" & n).Value = Range("E1").Value

End Sub

如果你想复制公式然后用你可以使用的值覆盖

Sub Charges()

Dim n As Long

n = WorksheetFunction.Max(6, Range("B" & Rows.Count).End(xlUp).Row + 1)

Range("E1").Copy Range("B" & n & ":S" & n)

Range("B" & n & ":S" & n).Value = Range("B" & n & ":S" & n).Value

End Sub

【讨论】:

  • 这有助于像我想要的那样将单元格值向下并跨行!但是,它只计算值而不是 Vlookup 公式。 :( Zack 评论说您可以将 vlookup 公式编码到 VBA 而不是单元格块本身。知道怎么做吗?这是我的公式 =VLOOKUP(E$3,'NOTEBOOK WORKSHEET'!$C$7:$D$41,2 ,假)
  • SJR,好的,所以我将相同的 vba 复制到同一个工作簿中的另外 2 张工作表,但是这 2 张工作表在所有单元格 BS 的底部都有一条总计线,因此它会继续运行宏并将其放入低于总计线。我能做些什么来阻止它?
  • 是的。如果总数在固定的行硬编码上,而不是从工作表底部向上(rows.count)。否则,您可以使用 Find 返回总行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 2019-12-21
相关资源
最近更新 更多