【问题标题】:Make Excel Defined Names within a worksheet to be global使工作表中的 Excel 定义名称成为全局名称
【发布时间】:2011-02-01 22:24:29
【问题描述】:

我编写了 Powershell 脚本来将工作表从工作簿 A 复制到另一个工作簿 B。工作表包含该工作表中范围的定义名称。最初,定义的名称在工作簿 A 中是全局的,即。可以从工作簿 A 中的任何工作表中引用。

但是现在,在复制到工作表 B 之后,定义的名称仅限于该工作表。如何以编程方式(最好通过 Powershell 脚本)将所有命名范围设为全局,即可以从工作簿 B 中的所有工作表中引用。

为了清楚起见,一些代码。

#Script to update SOP from 5.1 to 5.2
$missing = [System.Type]::missing

#Open files
$excel = New-Object -Com Excel.Application
$excel.Visible = $False
$excel.DisplayAlerts = $False
$newTemplate = "C:\WorkbookA.xls"
$wbTemplate = $excel.Workbooks.Open($newTemplate)

$oldSop = "C:\WorkbookB.xls"
$wbOldSop = $excel.Workbooks.Open($oldSop)

#Delete 'DATA' worksheet from old file
$wsOldData = $wbOldSop.Worksheets.Item("DATA")
$wsOldData.Delete()

#Copy new 'DATA' worksheet to old file
$wbTemplate.Worksheets.Item("DATA").Copy($missing,$wbOldSop.Worksheets.Item("STATUS"))

#Save
$wbOldSop.Save()
$wbOldSop.Close()

#Quit Excel
$excel.Quit()  

【问题讨论】:

    标签: powershell excel vba


    【解决方案1】:

    直接在 excel 中复制带有命名范围的工作表时,我遇到了这个问题。我上周刚遇到这个问题。我不知道为什么,我怀疑 PowerShell 真的与它无关。我唯一的办法似乎是删除并重新创建辅助表上的命名范围。

    【讨论】:

      猜你喜欢
      • 2013-04-11
      • 2019-09-09
      • 1970-01-01
      • 2018-05-04
      • 2015-12-22
      • 2014-04-18
      • 2015-08-08
      • 2011-04-27
      • 2013-09-04
      相关资源
      最近更新 更多