Vba 如何创建和命名引用工作簿中单元格的Excel工作表

Vba 如何创建和命名引用工作簿中单元格的Excel工作表,vba,excel,Vba,Excel,我试图通过将新解析的数据复制并粘贴到一个新创建的以日期命名的工作表中来完善一个相当大的宏,我将其存储在数据插入工作表的单元格B2中。简单地说,我想创建一个新的工作表,并用位于不同工作表的B2单元格中的内容(日期)命名它 ActiveSheet.Range("A3:Q" & lastRow).Select Selection.Copy ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count) Sheets(ActiveSh

我试图通过将新解析的数据复制并粘贴到一个新创建的以日期命名的工作表中来完善一个相当大的宏,我将其存储在数据插入工作表的单元格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")
将宏更改为

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\u Data\u Insert
是一个设置变量吗?如果您需要将其命名为“”

您看到了吗?是的,我看到了。这是一个静态的名字,但这是我有困难消除的部分。在创建每个新工作表时,名称需要更改,因为宏连续运行到执行时存储在B2中的日期。我认为您不理解它,然后XD您需要创建一个对象,然后设置名称。编辑:
Sheets(ActiveSheet.Name)。名称
必须更改,但
ActiveWorkbook.Sheets(Trade\u Data\u Insert)。范围(“B2”)
不会更改,除非我将使用另一个set对象限定ActiveWorkbook。我没有完全遵循它。我有Swift的经验,所以VBA对我来说是新的。语法把我绊倒了。完整地解释它有点长,而且我不是一个专家:/maybe read through。Trade_Data_Insert是用于解析所有数据的工作表的名称以及工作表名称的存储位置。我收到一个运行时错误“9”:当我运行代码时,下标超出了范围^^我引用了代码前面插入的交易数据,它没有抱怨。正如前面所说的:如果您的worksheed名为trade\u data\u insert,您需要将“”放入以使其工作->
…ok.Sheets(“trade\u data\u insert”)。运行…
。表现得很好