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

时间:2016-09-26 14:07:53

标签: excel vba

背景

我已经创建了一个VBA宏来从各个业务部门提取财务数据。

目的

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

APPROACH

  1. 定义工作表
  2. 定义"标题"阵列
  3. 在Excel工作表顶部插入1行,将所有其他行向下移动1
  4. 将标题数组文本值插入列
  5. CODE BASE

    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. "对象变量或With块变量未设置" @ line .Cells(1, 1 + i).Value = headers(i)
    2. 问题

      • 当我明确定义Set ws = ThisWorkbook.Sheets("CONSOLIDATED")
      • 时,为什么VBA说变量(假设" ws")未设置?

1 个答案:

答案 0 :(得分:2)

我怀疑工作表可能不在你告诉代码的地方,或者工作表名称实际上是不正确的。 (可能会让 $new_arr = array_merge($new_arr, array_reverse(array_slice($arr, $offset, $step))); $offset += $step; ThisWorkbook混淆?)

您也可以像这样重写代码:

ActiveWorkbook
相关问题