复制值表单,用作工作表名称(在循环中) – VBA Excelmacros

我试图复制一行中的值,从每个单元格中逐一,然后将这些值作为工作表名称,逐一。 我遇到的其中一个问题是跳过第一批工作表,所以我试图隐藏那些我不想重新命名的工作表。 所有其他表应该重新命名(其中34)。

我可以用“Fs.PasteSpecial xlPasteValues”来解决这个问题,然后我得到一个错误信息,说“运行时错误”1004'L object'_Worksheet的方法'PasteSpecial'失败。

我也尝试使用“Activesheet.PasteSpecial xlPasteValues”,但它给出了相同的错误。

任何build议都非常感谢,这使我疯狂。 :)我的备份计划是简单地使用macroslogging,并手动进行每个重命名,但这不是一个非常优雅或简单的代码,所以我宁愿不这样做。

代码如下:

Dim ws As Worksheet Dim TitleID As String Dim TID As String Sheets("SheetName1").Activate Set ws = ActiveSheet Dim rng As Range, cell As Range Set rng = ws.Range("C5", "AJ5") For Each cell In rng cell.Copy Sheets("SheetName1").Visible = False ws.Next.Select ws.PasteSpecial xlPasteValues Next cell 

如果我理解你的问题,正确的,下面的代码应该工作。

 Dim ws As Worksheet Set ws = Sheets("SheetName1") Dim rng As Range, cell As Range Set rng = ws.Range("C5","AJ5") Dim i as Integer i = 5 'this is an arbitrary number, change to whatever number of worksheets 'you wish to exclude that are at the beginning (left most side) of your workbook 'also assumes "SheetName1" is before this number. For Each cell In rng Sheets(i).Name = cell.Value i = i + 1 Next cell