我有大约 9,000 列(转到 MGN 列),其中有 14 行数据点。我需要以单身的格式为 B 列在 A 列下方、C 列在 B 列下方等的列。
是否有任何宏或任务可以执行,以便一次性完成?任何帮助都将不胜感激。
答案1
如果我理解正确的话,那么您会得到 126 000 行的结果,或者略多于 2,500 页的 A4 纸...如果您需要亲自分析它,那么单列的想法并不是很好。
前任:
xls2col2.vbs Book 1.xlsx
或者将 excel 文件拖放到 vbscript 中:
使用书 1.txt
xls2col2.vbs:
If WScript.Arguments.Count <1 then
Wscript.Echo "Ex.1: cscript xls2col.vbs filename.xls"
Wscript.Echo "Ex.2: cscript xls2col.vbs filename.xlsx"
Wscript.Quit
End If
Const OpenAsDefault = -2
Const FailIfNotExist = 0
Const ForReading = 1
Const ForWriting = 2
Const xlTextWindows=20
Const xlUnicodeText=42
Const ExtName = ".txt"
Dim ConvertExt:ConvertExt = xlTextWindows
Dim strFilePath:strFilePath = WScript.Arguments.Item(0)
Dim FSO:Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(strFilePath) Then
Dim FileProperties:Set FileProperties=FSO.GetFile(strFilePath)
Dim strOpenFileName : strOpenFileName = FileProperties.Path
Dim FileConvertName : FileConvertName = FSO.BuildPath(FileProperties.ParentFolder, FSO.GetBaseName(FileProperties) & ExtName)
Dim ExcelApplication:Set ExcelApplication = CreateObject("Excel.Application")
ExcelApplication.Workbooks.Open(strOpenFileName)
ExcelApplication.DisplayAlerts = FALSE
ExcelApplication.Visible = FALSE
ExcelApplication.Workbooks(1).SaveAs FileConvertName, ConvertExt
ExcelApplication.Quit
WScript.Sleep 5000
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim file: Set file = FSO.OpenTextFile(FileConvertName, ForReading, FailIfNotExist, OpenAsDefault)
Dim FileReadAll: FileReadAll = file.ReadAll
file.Close
FileReadAll = Replace(FileReadAll, Chr(9), Chr(13)&Chr(10))
Set file = FSO.OpenTextFile(FileConvertName, ForWriting, True)
file.Write(FileReadAll)
file.Close
Else
WScript.Echo "File Open Error: file not exist!"
WScript.Quit
End If
此脚本首先以文本形式保存文件,然后将其中的文本转换为一列。如果需要,则为 excel 格式,打开文本文件并重新保存,但我认为没有必要。
EViews 7 txt 文件: