我对软件平台内的编码功能(即SPSS语法,MATLAB脚本,Psychopy编码器)的经验很少。因此,我发现自己希望能为更一般的程序编写简单的例程循环。我希望有一种方法可以为excel做到这一点。具体来说,有没有一种方法可以编写excel:打开一个文件,串行删除两列,并将该文件保存到一个新文件名的新位置,并对包含文件夹中的所有文件重复此操作?我相信这个问题的答案对于编码经验最少的人来说非常有用,这些人可以从自动运行简单函数的代码中受益,而无需在GUI中点击和点击。
答案 0 :(得分:0)
这将为您提供所需的VBA代码,然后您可以在其周围包含一个简单的循环,以重复目录中的所有文件。
试一试,然后回过头来看看你遇到的代码,如果你遇到问题就会问一个具体的问题。
答案 1 :(得分:0)
如果您只想循环浏览文件夹中的文件并编辑文本文件删除行,或重命名文件等等,请查看FileScriptingObject
快速向下和脏的vba子例程,我们遍历文件夹中的每个文件,打开它进行读取,打开第二个文件进行写入,然后写出每一行,换行,跳过第5和第6行:
Sub FindOpenFiles()
Const fsoForWriting = 2
Const fsoForAppend = 8
Const fsoForReading = 1
directory = "C:\"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set folder = FSO.GetFolder(directory)
'Loop through files in folder
For Each file In folder.Files
'get the file path, open the file and create a new file with "_out" appended to the name
strFileInName = file.Path
strFileOutName = file.Path & "_out"
Set objFileIn = objFSO.OpenTextFile(strFileInName, fsoForReading)
Set objFileOut = objFSO.OpenTextFile(strFileOutName, fsoForWriting, True)
'Loop through each line in the incoming file
lineCount = 1
Do Until objFileIn.AtEndOfStream
'Write every line out to the output file, except for line 5 and 6
If lineCount <> 5 Or lineCount <> 6 Then
objFileOut.WriteLine objFileIn.ReadLine
lineCount = lineCount + 1
Next
Loop
Next file
End Sub
总而言之,这个子程序与Excel无关,因此您可以将其粘贴在Microsoft Word,Powerpoint,Outlook中,并且只需最少的编辑,它就是独立的vbscript。