插入文本数组作为标题(VBA,EXCEL)

背景

我创build了一个VBAmacros来从各个业务部门获取财务数据。

目的

合并每个业务单位的财务信息后, 插入一个包含列标题的行以准备数据透视表报表。

APPROACH

  1. 定义工作表
  2. 定义“标题”数组
  3. 在excel表格顶部插入1行,将所有其他行向下移动1
  4. 将标题数组文本值插入到列中

代码库

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)

  1. .Cells(1, 1 + i).Value = headers(i) “对象variables或With块variables未设置”

  • 为什么VBA说当我明确定义Set ws = ThisWorkbook.Sheets("CONSOLIDATED")时,variables(假设“ws”)没有设置

我怀疑,也许工作表不是你告诉代码的地方,或者表单名称实际上是不正确的。 (可能将ActiveWorkbookThisWorkbook混淆?)

你也可以像这样重新编写代码:

 Sub InsertHeaders() Sheets("CONSOLIDATED").Cells(1).Resize(1, 6).Value = Array("Fiscal Year", "Month", "Month_Year", "Project", "Local Expense", "Base Expense") End Sub