请问: vba, excel中打开多个xls文件, 搜索字符串,写入另一个sheet的问题
2010-07-14 08:17
741 查看
目的: 打开一个"办公文具"的sheet,搜索其中"@yahoo"的字符串(包括@yahoo.com, @yahoo.cn等),将此单元格的内容复制到一个新的sheet里.直到整个"办公文具"sheet搜索完毕.
Sub 宏1()
'
' 宏1 Macro
'
'
Sheets("办公文具").Select
Sheets.Add.Name = "bak13"
Sheets("办公文具").Select
Range("B1").Select
Cells.Find(What:="@yahoo", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
'Range("B13").Select
'Selection.Copy
'Sheets("bak2").Select
'ActiveSheet.Paste
'Range.Next
'Sheets("办公文具").Select
'Application.CutCopyMode = False
'Cells.FindNext(After:=ActiveCell).Activate
'While Cells.Text <> Null
Selection.Copy
Sheets("bak13").Select
'ActiveSheet.ActiveCell.
ActiveSheet.Paste
ActiveCell.Next <----问题出在这里
Sheets("办公文具").Select
Application.CutCopyMode = False
Cells.FindNext(After:=ActiveCell).Activate
'Cells.Find.
'Wend
End Sub
另外还有一个问题:
如果某个目录下有多个xls文件(包括"办公文具.xls"文件),每个文件里都有一个sheet,情况类似"办公文具sheet".
请问: 如何能够轮流打开全部的xls文件,将当中的sheet中符合"@yahoo"条件的单元格力的内容, 复制到"bak13" 这一个sheet里?
--------------------
你好,我基本上写了一个程序可以实现你说的功能,不过和你目前的代码有点区别
请参照:
下面代码完成的功能,就是在sheet1中查找@yahoo,然后copy到sheet2中.测试过了可以使用
VBScript code
[/code]
Sub 宏1()
'
' 宏1 Macro
'
'
Sheets("办公文具").Select
Sheets.Add.Name = "bak13"
Sheets("办公文具").Select
Range("B1").Select
Cells.Find(What:="@yahoo", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
'Range("B13").Select
'Selection.Copy
'Sheets("bak2").Select
'ActiveSheet.Paste
'Range.Next
'Sheets("办公文具").Select
'Application.CutCopyMode = False
'Cells.FindNext(After:=ActiveCell).Activate
'While Cells.Text <> Null
Selection.Copy
Sheets("bak13").Select
'ActiveSheet.ActiveCell.
ActiveSheet.Paste
ActiveCell.Next <----问题出在这里
Sheets("办公文具").Select
Application.CutCopyMode = False
Cells.FindNext(After:=ActiveCell).Activate
'Cells.Find.
'Wend
End Sub
另外还有一个问题:
如果某个目录下有多个xls文件(包括"办公文具.xls"文件),每个文件里都有一个sheet,情况类似"办公文具sheet".
请问: 如何能够轮流打开全部的xls文件,将当中的sheet中符合"@yahoo"条件的单元格力的内容, 复制到"bak13" 这一个sheet里?
--------------------
你好,我基本上写了一个程序可以实现你说的功能,不过和你目前的代码有点区别
请参照:
下面代码完成的功能,就是在sheet1中查找@yahoo,然后copy到sheet2中.测试过了可以使用
VBScript code
Sub FindStrings() Dim firstCell, nextCell, stringToFind As String Dim nCursor As Integer stringToFind = "@yahoo" nCursor = 1 nextCell = "" Sheet1.Select Range("A1").Select Range("A1").Activate Set firstCell = Cells.Find(What:=stringToFind, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False) If firstCell Is Nothing Then MsgBox "Search Value Not Found.", vbExclamation Else Sheet2.Cells(1, nCursor).Value = firstCell nCursor = nCursor + 1 Do While firstCell.Address <> nextCell If nextCell = "" Then nextCell = firstCell.Address End If nextCell = Cells.FindNext(After:=Range(nextCell)).Address If firstCell.Address <> nextCell Then Sheet2.Cells(1, nCursor).Value = Range(nextCell).Value nCursor = nCursor + 1 End If Loop End If End Sub -----------------------
>请问: 如何能够轮流打开全部的xls文件,将当中的sheet中符合"@yahoo"条件的单元格力的内容, 复制到"bak13" 这一>个sheet里? 这个应该不是难事,就是你把所有的xls放到一个目录里面 如下代码 VBScript code [code] Dim path As String path = "d:/work" FileName = Dir(path & "/*.xls") FileName = path & "/" & FileName Do While FileName <> "d:/work/" ...... FileName = Dir FileName = path & "/" & FileName Loop -----------
未完:
http://topic.csdn.net/u/20080414/12/37f8af2d-9b74-495a-b14f-24b6e3f9496f.html
[/code]
相关文章推荐
- vba打开excel文件遍历sheet的名字和指定单元格的值
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
- Excel 表格中根据某一列的值从另一个xls文件的对应sheet中查找包含其中一列的内容(有点拗口)
- Excel 关于新建xls文件 新建sheet 合并sheet的VBA操作代码
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- 【整理】Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
- VBA 从一个Excel文件复制一行数据到另一个Excel文件
- (表格)vba如何打开一个文件夹下所有xls文件
- 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
- 在Excel(xlsx)文件中用OpenXml SDK 添加一个新的Worksheet并写入字符串
- Centos下“无法打开并写入文件”问题
- Excel的文件打开特别慢,xls文件特别大解决一例
- 解决Excel打开UTF-8编码CSV文件乱码的问题
- C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件。 ”的解决
- poi 生成excel文件.xls或者.xls实例,包括日期写入处理
- Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
- EXCEL文件中的VBA模块名包含中文名导致打开失败的案例。
- 记事本能正常打开的csv文件,用Excel打开乱码问题解决办法
- utf-8编码的数据文件用excel打开出现的乱码问题