首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA代码转换

Excel VBA代码转换
EN

Stack Overflow用户
提问于 2011-10-07 23:34:54
回答 1查看 936关注 0票数 2

下面代码中的FieldInfo给我带来了一些问题。我尝试过在线转换器,但它们似乎在这部分代码中做得不是很好。我还试图在MSDN中查找有关它的信息,但我找不到任何信息。我在哪里可以找到关于如何转换该部分的信息,即在C#中数组(x,y)转换为什么?

任何帮助都是非常感谢的。

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

代码语言:javascript
复制
    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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-08 01:55:34

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

代码语言:javascript
复制
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)

这是在第一个对话框中选中"Delimited“选项的情况下录制的。如果我选择"Fixed Width",然后在输入数据中手动创建多个列,则记录如下:

代码语言:javascript
复制
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))

如果我必须猜测,我会说有人使用"Fixed Width“选项录制了宏,然后将VBA代码从DataType:=xlFixedWidth改为DataType:=xlDelimited

如果您的输入数据实际上是带分隔符的,那么您应该能够省略所有杂乱的FieldInfo数组信息,并通过设置DataType:=xlDelimited让Excel自动处理分隔符

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

编辑:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7689503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档