【发布时间】:2018-02-03 05:57:09
【问题描述】:
第一次在这个论坛上发帖,我是 VBA 新手,所以我会尽可能详细。
我制作了一个宏,可以在 excel 选项卡中修改 dxf 绘图模板,然后将该数据写入新的 dxf 文件。我目前正在使用以下代码编写文本文件:
Dim Application2 As Variant
Range("A:A").Copy
Application2 = Shell("c:\windows\notepad.exe", vbMaximizedFocus)
AppActivate Application2
SendKeys "^(V)", True
SendKeys "%fa", True
SendKeys "%t", True
SendKeys "{DOWN 2}", True
SendKeys "%n", True
SendKeys savetarget, True
SendKeys "%s", True
SendKeys "%fx", True
我一直在尝试更改为以下方法,因此我不需要打开记事本并输入击键。
FN = FreeFile
Open savetarget For Output Shared As #FN
For iCntr = 1 To copy_endline
mystring = workspace.Range("A" & iCntr).Value
Print #FN, mystring
mystring = ""
Next iCntr
Close #FN
这有时有效,但它似乎以某种方式修改了格式,因此绘图变得无法被 Autocad 读取。如果我手动从 A 行复制数据并将其粘贴到记事本文档中,它工作正常。
【问题讨论】:
-
为什么不迭代范围并将每一行添加到 DXF 中?很难为您提供帮助,因为您没有向我们展示 Excel 文件的内容以及生成的 DXF 文件的外观。
-
DXF 的格式坦率地说是没有意义的。 Excel 文件使用 DXF 文件模板中的变量名替换。 DXF 模板以文本形式存储在 Excel 文件的选项卡中。
-
很遗憾,我无法发布这些文件。我将尝试查看这两个文件的格式差异,以便提供更多信息。
-
我找不到区别。有谁知道 Print 功能如何改变不同事物的格式,例如:制表符、空格、日期等?
-
我还是不明白为什么你不能提供输出 dxf 文件。如果没有可验证的工作示例,没有人可以真正为您提供帮助。
标签: dxf