插入文本数组作为标题(VBA,EXCEL)
背景
我创build了一个VBAmacros来从各个业务部门获取财务数据。
目的
合并每个业务单位的财务信息后, 插入一个包含列标题的行以准备数据透视表报表。
APPROACH
- 定义工作表
- 定义“标题”数组
- 在excel表格顶部插入1行,将所有其他行向下移动1
- 将标题数组文本值插入到列中
代码库
Sub addHeaders() Dim ws As Worksheet Dim headers() As Variant 'Define worksheet and desired headers Set ws = ThisWorkbook.Sheets("CONSOLIDATED") headers() = Array("Fiscal Year", "Month", "Month_Year", "Project", "Local Expense", "Base Expense") 'Insert row for header placement Rows(1).Insert shift:=xlShiftDown 'Insert headers With ws For i = LBound(headers()) To UBound(headers()) .Cells(1, 1 + i).Value = headers(i) Next i End With End Sub
ISSUE(S)
-
.Cells(1, 1 + i).Value = headers(i)
“对象variables或With块variables未设置”
题
- 为什么VBA说当我明确定义
Set ws = ThisWorkbook.Sheets("CONSOLIDATED")
时,variables(假设“ws”)没有设置
我怀疑,也许工作表不是你告诉代码的地方,或者表单名称实际上是不正确的。 (可能将ActiveWorkbook
与ThisWorkbook
混淆?)
你也可以像这样重新编写代码:
Sub InsertHeaders() Sheets("CONSOLIDATED").Cells(1).Resize(1, 6).Value = Array("Fiscal Year", "Month", "Month_Year", "Project", "Local Expense", "Base Expense") End Sub