gpt4 book ai didi

excel - Powershell 脚本包括。 VBA Excel 宏

转载 作者:行者123 更新时间:2023-12-03 03:13:42 24 4
gpt4 key购买 nike

我想编写一个 Powershell 脚本,它打开一个现有文件并在其中放入一个宏。我一直在寻找,但一无所获。

我的代码是:

$Word = New-Object -ComObject Word.Application
$Word.Visible = $true
$filepathagenda = "C:\Users\$Username\Desktop\Agenda.docx"
$Word.Documents.Open($filepathagenda)

VBA代码是:

Sub Macroname()
Dim oTab As Table
Dim i As Integer
Dim x As Integer
Dim Std As Double
Dim Min As Double
Dim Dauer As Double
Dim Z As Double
Dim ZInt As Double
Dim ZDez As Double
Dim Txt As String

Set oTab = ActiveDocument.Tables(1)
i = oTab.Rows.Count

For x = 2 To i
On Error GoTo ErrorHandle:

Std = CDbl(Left(oTab.Cell(x, 5), 2))
Min = CDbl(Mid(oTab.Cell(x, 5), 4, 2))
Txt = oTab.Cell(x, 4).Range.Text

Dauer = CDbl(Left(oTab.Cell(x, 4), Len(Txt) - 2))

If Min + Dauer < 60 Then
oTab.Cell(x + 1, 5).Range.Text = Format(Std, "00") & ":" & Format(Min + Dauer, "00")
oTab.Cell(x + 1, 5).Select
Else
Z = (Min + Dauer) / 60
ZDez = Z - Int(Z)
ZDez = ZDez * 60
oTab.Cell(x + 1, 5).Range.Text = Format(Std + Int(Z), "00") & ":" & Format(ZDez, "00")
oTab.Cell(x + 1, 5).Select
End If

GoTo NoError:

ErrorHandle:
oTab.Cell(x + 1, 5).Range.Text = Format(Std, "00") & ":" & Format(Min, "00")
oTab.Cell(x + 1, 5).Select
Resume NoError:

NoError:
Next x

Ende:
End Sub

如何将宏放入文件中?我刚刚找到了一些命令,可以在其中运行宏,但没有找到有关将宏嵌入到这样的文件中的命令。将脚本嵌入到 docx/docm 文件中后,我想在文件中运行宏:

$word.run("Macroname") 
$word.quit() exit application

最佳答案

您可能正在寻找.Import method Word 文档的。

objDocumentObject.VBProject.VBComponents.Import(strFilePathAndName)

其中 strFilePathAndName 是对包含宏的文本文档的引用。

下面使用 FileDialog 方法选择 Word 文档并将宏作为字符串逐行插入,但也可以通过使用上述方法引用文件名变量来完成。

Sub AddMacroToWordDoc()
With Application.FileDialog(msoFileDialogOpen)
.Show
Dim appWord As Word.Application
Set appWord = New Word.Application

Dim docDocToAdjust As Word.Document
Set docDocToAdjust = appWord.Documents.Open(Trim(.SelectedItems(1)))

docDocToAdjust.VBProject.VBComponents("ThisDocument") _
.CodeModule.AddFromString _
"Sub Test()" & vbLf & _
" MsgBox ""It works""" & vbLf & _
"End Sub"
End With
End Sub

值得注意的是,这两种方法都需要在 VBA 代码插入工作之前先信任该文件(出于显而易见的原因)。

编辑:如果您在其他 Microsoft 产品的 VBA 中使用此功能,则还需要引用 Microsoft Word 对象库。

关于excel - Powershell 脚本包括。 VBA Excel 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55811861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com