固定宽度文本导入故障:Comment字段长度变更致VBA导入失败
电子表格导入故障问题
我们有一个可从设计程序导入纯文本的电子表格,近期目标文件格式变更,导致导入程序无法正常运行。
- 旧文本文件:Comment字段长度为17字符
- 新文本文件:Comment字段长度从17字符增加至18字符
涉及的VBA代码片段
负责字段解析的VBA代码(处理CZE_DET.OUT文件)如下:
Sub IMPORT_CZEOUT() Dim aryJobs() As String Dim strComb As String Dim strDir As String Dim i As Integer Dim j As Integer Dim k As Integer Sheets("CEE ORDER").Visible = True Sheets("CZE_DET").Visible = True Application.DisplayAlerts = False Application.ScreenUpdating = False Sheets("CEE ORDER").Select For i = 1 To colAllBuildings.Count strDir = Dir$(colAllBuildings.Item(i) & "\CZE_DET.OUT") If strDir <> "" Then Workbooks.OpenText Filename:=colAllBuildings.Item(i) & "\CZE_DET.OUT", Origin:=xlWindows, _ StartRow:=7, DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 9), Array(5, 1), Array(9, 9), Array(10, 1), _ Array(13, 9), Array(14, 1), Array(15, 9), Array(16, 1), Array(18, 1), _ Array(28, 9), Array(35, 9), Array(47, 9), Array(54, 1), Array(57, 1), _ Array(62, 1), Array(67, 1), Array(72, 1)) Range("A1:L" & CStr(Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row)).Select Selection.Copy Windows(strShipperName).Activate ' 该行无理由无法运行! ' Windows(1).ActivatePrevious Sheets("CZE_DET").Select Range("A1").Select If Range("A1").Value <> "" Then ActiveSheet.Range("A65536").End(xlUp).Select ActiveCell.Offset(1, 0).Select End If Selection.PasteSpecial Paste:=xlValues Selection.Sort Key1:=Range("A12"), Order1:=xlAscending, Orientation:=xlTopToBottom Windows("CZE_DET.OUT").Activate ActiveWindow.Close End If Next End Sub
注:存在完整子程序代码,此处仅展示核心片段。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

