gpt4 book ai didi

python - 如何使用 VBA 编写 Python 文件?

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:32 25 4
gpt4 key购买 nike

我想使用 excel VBA 在 python 中编辑脚本文件,然后在 ArcGis 中运行。首先,我愿意接受任何更简单的方法,但到目前为止,我在使用 VBA 子程序制作多行脚本时遇到了问题!

& vbCrLf & 在命令 Fileout.Write 中不起作用。当我打开我的脚本文件时,所有内容都在同一行。

& Char(34) & 都不工作。

Private Sub CommandButton4_Click()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim path As String
path = Application.ActiveWorkbook.path


Dim Fileout As Object
Set Fileout = fso.CreateTextFile(path & "\" & "test2.py", True, True)
Fileout.Write "import arcpy & vbCrLf & lyr = arcpy.mapping.Layer( & Char(34) & limits & Char(34) &) & vbCrLf & lyr.visible = True & vbCrLf & arcpy.RefreshActiveView()'"
Fileout.Close
End Sub

最佳答案

错误在这里:

Fileout.Write "import arcpy & vbCrLf & lyr = arcpy.mapping.Layer( & Char(34) & limits & Char(34) &) & vbCrLf & lyr.visible = True & vbCrLf & arcpy.RefreshActiveView()'"

这不会给出预期的输出,因为您在要计算的 VBA 代码周围加了引号。修复引号给出

Fileout.Write "import arcpy" & vbCrLf & "lyr = arcpy.mapping.Layer(" & Char(34) & limits & Char(34) & ")" & vbCrLf & "lyr.visible = True" & vbCrLf & "arcpy.RefreshActiveView()"

让我们使用一些续行符 (_) 使这段代码更易读:

Fileout.Write "import arcpy" & vbCrLf _
& "lyr = arcpy.mapping.Layer(" & Char(34) & limits & Char(34) & ")" & vbCrLf _
& "lyr.visible = True" & vbCrLf _
& "arcpy.RefreshActiveView()"

Char(34) 可以通过双引号完成("" 引号内的计算结果为双引号):

Fileout.Write "import arcpy" & vbCrLf _
& "lyr = arcpy.mapping.Layer(""" & limits & """)" & vbCrLf _
& "lyr.visible = True" & vbCrLf _
& "arcpy.RefreshActiveView()"

您可以使用多个 WriteLine 代替 Write 去掉每一行的 & vbCrLf _:

Fileout.WriteLine "import arcpy"
Fileout.WriteLine "lyr = arcpy.mapping.Layer(""" & limits & """)"
Fileout.WriteLine "lyr.visible = True"
Fileout.WriteLine "arcpy.RefreshActiveView()"

关于python - 如何使用 VBA 编写 Python 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209035/

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