Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文本数组作为标题插入(VBA、EXCEL)_Excel_Vba - Fatal编程技术网

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

将文本数组作为标题插入(VBA、EXCEL),excel,vba,Excel,Vba,背景 我创建了一个VBA宏,用于从各个业务单元中提取财务数据 目标 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", "L

背景

我创建了一个VBA宏,用于从各个业务单元中提取财务数据

目标

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
整合每个业务部门的财务信息后,插入一行,列标题为,以准备数据透视表报告

方法

  • 定义工作表
  • 定义“头”数组
  • 在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
    
    问题

  • “未设置对象变量或带块变量”@line
    。单元格(1,1+i)。值=标题(i)
  • 问题

    • 当我清楚地定义了
      set ws=thiswoolk.Sheets(“合并”)

    我怀疑工作表可能不在您告诉代码的地方,或者工作表名称实际上不正确。(可能将
    此工作簿
    活动工作簿
    混淆)

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

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

    您确定工作表位于
    此工作簿中而不是
    活动工作簿中吗?编辑:出于某种原因,当我在VBA编辑器之外时,此代码会正常运行。以上所有代码都有效。对给您带来的不便表示歉意