gpt4 book ai didi

c# - Excel VBA 代码转换

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:19 27 4
gpt4 key购买 nike

以下代码中的 FieldInfo 给我带来了一些问题。我试过在线转换器,但它们似乎对这部分代码的处理不是很好。我也试图通过 MSDN 查看有关它的信息,但我找不到任何信息。我在哪里可以找到有关如何转换该部分的信息,即 Array(x,y) 在 C# 中转换成什么?

感谢任何帮助。

下面是我正在努力处理的代码示例。

    Workbooks.OpenText Filename:= _
"" & myZdrive & "\CI_System\Source_Files\" & myPosFile & "", Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _
Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 2), Array(15 _
, 1), Array(16, 1), Array(17, 2), Array(18, 2), Array(19, 2), Array(20, 2), Array(21, 2))

Rows("1:1").Select
Selection.Font.Bold = True
Cells.Select
Cells.EntireColumn.AutoFit

最佳答案

您发布的 VBA 代码看起来像是在 Excel 中完成的宏记录。例如,我通过打开纯文本文件(.txt)记录了以下内容:

Workbooks.OpenText Filename:= _
"C:\test.txt" _
, Origin:=xlWindows, startRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)

这是在第一个对话框中选中“定界”选项后记录的。如果我改为选择“固定宽度”,然后在输入数据中手动创建多个列,则记录如下所示:

Workbooks.OpenText Filename:= _
"C:\test.txt" _
, Origin:=xlWindows, startRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
Array(Array(0, 1), Array(2, 1), Array(10, 1), Array(18, 1), Array(30, 1), _
Array(41, 1), Array(55, 1))

Excel text import dialog box screenshot

如果非要我猜的话,我会说有人使用“固定宽度”选项录制宏,然后将 VBA 代码从 DataType:=xlFixedWidth 更改为 DataType: =xlDelimited.

如果您的输入数据实际上是分隔的,您应该能够省略所有困惑的 FieldInfo 数组信息,让 Excel 自动处理分隔符,只需设置 DataType:=xlDelimited

如果您确实需要指定固定宽度的列,linkBobort发布将是一个很好的起点。从外观上看,FieldInfo 需要一个包含任意数量子数组的 VBA Variant 数组,每个子数组包含两个数字:列宽和数据类型。

编辑:

Origin 字段用于描述文本文件的格式:从下拉菜单中选择的 Macintosh、Windows (ANSI) 或 MS-DOS (PC-8)。

关于c# - Excel VBA 代码转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689503/

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