【发布时间】:2018-01-04 16:45:06
【问题描述】:
我的工作簿包含多个工作表,每个工作表第 8 行包含列标题。每张纸都有与其他纸相同的列,但列的数量会因作业而异。我需要编写一个宏,以便当一个新的列标题添加到一个工作表的末尾时,它将它添加到所有其他工作表(在我的代码中可以看到一些例外情况)。列名由输入框控制,但由于列数可能不同,因此在尝试使用此值时无法修复单元格范围。
这是我目前拥有的代码。我没有运气尝试只添加额外的列名,所以我尝试复制第 8 行中的所有列名,但无法让它工作。我对VBA很陌生,任何帮助将不胜感激!
Sub AddNewColumns()
Dim NewColumn As String
Dim rng As Range
NewColumn = InputBox("Please enter a name for the new column")
Range("A8").Select
ActiveCell.End(xlToRight).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = NewColumn
Range("A8").Select
Range(Selection, Selection.End(xlToRight)).Select
Set rng = Selection
Selection.Copy
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "SheetList" And ws.Name <> "Blank Sheet" And ws.Name <> "Dashboard" And ws.Name <> "Combined" And ws.Name <> "MasterCheck" Then
ws.Range("A8").Value = rng.Value
End If
Next ws
End Sub
谢谢
【问题讨论】:
-
您已经有使用 End(xlToRight) 查找最后一列的代码,在其他工作表中使用类似代码,或者如果工作表布局相同,则存储列索引。