【问题标题】:How to create and name an Excel Sheet referencing a cell in the workbook如何创建和命名引用工作簿中单元格的 Excel 工作表
【发布时间】:2015-11-03 05:19:17
【问题描述】:

我试图通过将新解析的数据复制并粘贴到以日期命名的新创建的工作表中来完善一个相当大的宏,我将其存储在数据插入工作表的单元格 B2 中。所以最简单地说,我想创建一个新工作表并用位于不同工作表中的单元格 B2 中的内容(日期)命名。

ActiveSheet.Range("A3:Q" & lastRow).Select
Selection.Copy

ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
Sheets(ActiveSheet.Name).Name = ActiveWorkbook.Sheets(Trade_Data_Insert).Range("B2")

【问题讨论】:

  • 你见过this吗?
  • 是的,我有。虽然这是一个静态名称,但这是我无法消除的部分。名称需要更改,因为每个新工作表都是通过连续运行宏创建的,直到执行时存储在 B2 中的任何日期。
  • 我不认为你理解它然后 XD 你需要创建一个对象然后设置名称。编辑:Sheets(ActiveSheet.Name).Name 必须更改,但 ActiveWorkbook.Sheets(Trade_Data_Insert).Range("B2") 不会更改,除非我将使用另一个 set 对象限定 activeworkbook。
  • 我没有完全遵循它。我有使用 Swift 的经验,所以 VBA 对我来说是新的。语法让我很困惑。
  • 完全解释它有点长,我不是专家:/也许阅读this

标签: vba excel


【解决方案1】:

把你的宏改成

Dim newSht As Worksheet
ActiveSheet.Range("A3:Q" & lastRow).Select
Selection.Copy

Set newSht = ActiveWorkbook.Sheets.Add(, Worksheets(Worksheets.Count))
newSht.Name = ActiveWorkbook.Sheets(Trade_Data_Insert).Range("B2").Value

还有...Trade_Data_Insert 是一个集合变量吗?如果它的名字你需要把它放在“”

【讨论】:

  • Trade_Data_Insert 是用于解析所有数据的工作表名称以及存储工作表名称的位置。我收到运行时错误“9”:运行该代码时下标超出范围^^我在代码中引用了之前插入的交易数据,它没有抱怨。
  • 如前所述:如果您的工作表名为 Trade_Data_Insert,您需要输入 "" 以使其工作 -> ...ok.Sheets("Trade_Data_Insert").Ran...。显示得很好HERE
猜你喜欢
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多