我很惊讶我一直无法找到在线浮动的解决方案。有几个类似的问题,但涉及更复杂的部分。 这实际上是为了准备工作簿。 Sheet1 ColA有一个节号列表。我需要它将工作表重命名为每个节号。他们需要保持秩序并在需要时创造更多床单。为每个部分编号保留一个表单。将所有工作表重命名为Sheet1中每个单元格的值ColA
这是我发现的一些代码,但没有完全理解。它看起来很接近,我只需要修改它以使用ColA而不是带有“Last_Name”标题的列。
Sub MakeSectionSheets()
Dim rLNColumn As Range
Dim rCell As Range
Dim sh As Worksheet
Dim shDest As Worksheet
Dim rNext As Range
Const sNUMB As String = "Last_Name"
Set sh = ThisWorkbook.Sheets("Sheet1")
Set rLNColumn = sh.UsedRange.Find(sNUMB, , xlValues, xlWhole)
'Make sure you found something
If Not rLNColumn Is Nothing Then
'Go through each cell in the column
For Each rCell In Intersect(rLNColumn.EntireColumn, sh.UsedRange).Cells
'skip the header and empty cells
If Not IsEmpty(rCell.Value) And rCell.Address <> rLNColumn.Address Then
'see if a sheet already exists
On Error Resume Next
Set shDest = sh.Parent.Sheets(rCell.Value)
On Error GoTo 0
'if it doesn't exist, make it
If shDest Is Nothing Then
Set shDest = sh.Parent.Worksheets.Add
shDest.Name = rCell.Value
End If
'Find the next available row
Set rNext = shDest.Cells(shDest.Rows.count, 1).End(xlUp).Offset(1, 0)
'Copy and paste
Intersect(rCell.EntireRow, sh.UsedRange).Copy rNext
'reset the destination sheet
Set shDest = Nothing
End If
Next rCell
End If
End Sub
当然,你需要两列:旧名称和新名称。重命名工作表很简单:'Sheets(“OldName”)。Name =“NewName”' – 2012-02-06 20:23:39
@ equaliz3r:你可以发布屏幕截图了解工作簿的外观,以及代码运行后的外观。 – 2012-02-06 23:12:04