Excel 宏中的剪切和粘贴

Excel 宏中的剪切和粘贴

我有大约 9,000 列(转到 MGN 列),其中有 14 行数据点。我需要以单身的格式为 B 列在 A 列下方、C 列在 B 列下方等的列。

是否有任何宏或任务可以执行,以便一次性完成?任何帮助都将不胜感激。

答案1

如果我理解正确的话,那么您会得到 126 000 行的结果,或者略多于 2,500 页的 A4 纸...如果您需要亲自分析它,那么单列的想法并不是很好。

前任:

xls2col2.vbs Book 1.xlsx

或者将 excel 文件拖放到 vbscript 中:

将 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 文件:

EViews 7 txt 文件

相关内容