Sco*_*t T 2 excel vba header excel-vba
我很难想起我想要做的事情,因为我很难把我想做的事情变成文字.
基本上,我想要做的是采取一组标题(可能是10-12列长),并在宏中,我想将这些标题粘贴(替换)在表1的第1行中的当前标题.我目前设置的东西是,在生成该工作表时,从每张工作表的第2行开始插入我的数据.我有一个宏写入,将第1页的第1行复制到每个现有的工作表,但是,我不需要手动插入第一个工作表的标题(它应该是宏的一部分).
所以我想我需要协助如何在第1页的第1行插入一行预定的标题(我想将实际的标题名称写入宏代码).
编辑:
Application.CutCopyMode = True
Dim Counter As Long
Counter = Sheets.Count
For i = 1 To Counter
Sheets("Sheet1").Cells(1, 1).EntireRow.Copy
Sheets(i).Cells(1, 1).PasteSpecial
Next i
Application.CutCopyMode = False
Run Code Online (Sandbox Code Playgroud)
这就是我复制代码的方法,这很好用.我想要的是能够在第1行第1页的相应列中放入一行基本上称为"粘贴"标题1""标题2""标题3"等"的代码行.所以我已经有了我的标题名称挑选出来但我想将它们直接放入宏代码中.因此,如果我的标题是Apply Banana Lettuce Tomato,我想将这些单词放入宏代码中,并将它们粘贴在上面列出的复制粘贴代码之前的第1行第1行中.
由于您提前了解了标题,因此可以使用我的下方将其切换出来.这应该是你输入的标题,并将它们粘贴到所有表格中.注意:这也将删除任何工作表中第1行中的任何信息,因此如果您不希望发生这种情况,请注释/删除该行.
Sub AddHeaders()
Dim headers() As Variant
Dim ws As Worksheet
Dim wb As Workbook
Application.ScreenUpdating = False 'turn this off for the macro to run a little faster
Set wb = ActiveWorkbook
headers() = Array("Superhero", "City", "State", "Country", "Publisher", "Demographics", _
"Planet", "Flying Abilities", "Vehicle", "Sidekick", "Powers")
For Each ws In wb.Sheets
With ws
.Rows(1).Value = "" 'This will clear out row 1
For i = LBound(headers()) To UBound(headers())
.Cells(1, 1 + i).Value = headers(i)
Next i
.Rows(1).Font.Bold = True
End With
Next ws
Application.ScreenUpdating = True 'turn it back on
MsgBox ("Done!")
End Sub
Run Code Online (Sandbox Code Playgroud)
您也可以将其用作一般宏 - 它可以防止需要复制/粘贴(这是在VBA中学习的好事,以避免复制/粘贴),如果标题经常更改,您还可以创建动态标题数组.如果您正在寻找您想要的东西,请告诉我们!
编辑:关于数组的注释.默认情况下,具有5个项目的数组将从0到4建立索引.即如果执行此循环(psuedocode):
myArray() = Array("Batman","Superman","Catwoman","Rorschach")
for i = 1 to uBound(myArray())
debug.print myArray(i)
Next i
Run Code Online (Sandbox Code Playgroud)
它只会打印"超人","猫女","罗夏".这是因为"蝙蝠侠"作为第一个条目是0指数.只需将此for行替换为for i = lBound(myArray()) to uBound(myArray())从第一个到最后一个条目.或者,你可以使用for i = 0 to uBound(...
但你会在那个循环中注意到,我有.Cells(1, 1+i)....这是因为我的循环从0开始,所以我不得不向i添加1,所以它将从第二列开始.
不喜欢那种从零开始的数组(它从0开始)?你可以从1开始!怎么样?做吧Dim myArray(1 to 10).这将创建一个数组,但从1开始.然后,此示例将打印所有四个人:
for i = 1 to uBound(myArray())
debug.print myArray(i)
next i
Run Code Online (Sandbox Code Playgroud)
一个提示,用于循环整个数组,只是使用lBound(array()),uBound(array())它分别是第一个值和最后一个值.这也可以让你这样做.Cells(1,i).Value ...,因为我从1开始.这有意义吗?
| 归档时间: |
|
| 查看次数: |
31093 次 |
| 最近记录: |