我想从文件夹中的excel文件复制特定列,并将所有值粘贴到新的excel工作表中。
已完成-
1.我能够循环浏览位于一个文件夹中的所有文件。
1.我可以从特定列复制数据。
无法完成:
1.无法粘贴复制的数据。
1.我只想复制非重复值。
1.我想复制列,直到行有。喜欢如果有7行,然后复制列的7个值。我的复制命令是复制所有的值到Excel工作表的最后一行。
我的代码(VBScipt)-
strPath="C:\Test"
Set objExcel= CreateObject("Excel.Application")
objExcel.Visible= True
Set objExcel2= CreateObject("Excel.Application")
objExcel2.Visible= True
objExcel2.Workbooks.open("C:\Test\New Folder\4.xlsx")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder (strPath)
For Each objFile In objFolder.Files
If objFso.GetExtensionName(objFile.Path) = "xlsx" Then
objExcel.Workbooks.Open(objFile.Path)
Set Source=objExcel.Activeworkbook.Sheets(1).Columns("G")
Source.Copy
Set dest=objExcel2.Activeworkbook.Sheets(1).Columns("A")
dest.Paste
objExcel.Activeworkbook.save
objExcel.Activeworkbook.close
objExcel2.Activeworkbook.save
objExcel2.Activeworkbook.close
End If
Next
3条答案
按热度按时间wdebmtf21#
此函数将返回工作表中给定列的已用范围。
如果你用这个代替你的
Set Source=objExcel.Activeworkbook.Sheets(1).Columns("G")
,它应该能做你想做的事情。例如:
Set Source = getRange("G", objExcel.Activeworkbook.Sheets(1))
您可能需要将
dest
更改为单元格,而不是列(以防excel抱怨它的大小不正确)Set dest = objExcel.Activeworkbook.Sheets(1).Cells("A1")
刚才看到你把它标记为VBScript,我还没有测试它作为VBS,但它可能工作一样的VBA。
hc2pp10m2#
对于不同的复制
.AdvancedFilter()
方法使用,单元格定义为getRange()
从@NickSlash。对于数据添加从文件,新的工作表创建为每个人,然后数据过滤到它。我希望这有助于。VB脚本语言
trnvg8h33#
我认为PasteSpecial将有助于在vb脚本中粘贴。最好在PasteSpecial中使用-4163参数,以确保只粘贴值。下面的代码在Microsoft Visual Studio 2012中为我工作。添加注解只是为了知道程序在代码中的位置。希望这能有所帮助。