在当前excel中用VBA编程取出另一个xls文件中的内容

要求:在当前excel的一个单元格中取得目标xls文件的行中的内容(多行)。
如目标文件中取出body的内容,只有$跟title有规律,怎么把body这块内容取出来放到一个单元格中,求代码!!!

没有你的工作表,试着闭门造车一下,看看能用不。你说的那个规律我不知道有什么用。
Sub GetContent()
Dim Sh As Workbook, Wk2 As Workbook, R As Range, S As String, F As Boolean, L As Long
Set Wk1 = Workbooks("新建Microsoft Excel工作表.xls") '从这个工作表中复制
Set Wk2 = ActiveWorkbook '复制到这个工作表中
F = 0
S = ""
L = 1
With Wk1.ActiveSheet
For Each R In .Range(.Cells(1, 1), .Cells(.Cells(65536, 1).End(xlUp).Row, 1)).Cells
Select Case R.Value
Case "body"
F = 1
Case ""
If F Then
F = 0
Wk2.ActiveSheet.Cells(L, 1) = S
S = ""
L = L + 1
End If
Case Else
If F Then S = S & R.Value
End Select
Next
End With
End Sub追问

大哥,我要读取的文件是一个文档型的数据库转成的xls文件,里面包含许多数据,每条数据的字段都显示在xls文件的每一行的第一列中,这个body不是一个具体的字段,它是一段多行的文本内容,主要的是如何取出这个多行的内容。我说的那个规律是每个数据中能找到的共有字段。

追答

是不是说只有遇到$跟title就开始读取?我需要知道具体的开始读取、结束读取的条件,读取包含哪些内容,含不含开始和结束的判断标志,读取后以什么样的形式存放等等这些细节才能在细化,直到解决你的问题。

追问

是的,遇到$跟title开始读,读出来的内容去掉包含$与title的头尾行,循环得到的数据分别放到创建宏的工作表当中的单元格中(x,1)。我做的那个是通过按钮触发宏运行,现在只差多行的那部分了,主要是循环老是处理不好。

追答

按你的要求,代码修改如下:
Sub GetContent()
Dim Sh As Workbook, Wk2 As Workbook, R As Range, S As String, F As Boolean, L As Long
Set Wk1 = Workbooks("新建Microsoft Excel工作表.xls") '从这个工作表中复制
Set Wk2 = ActiveWorkbook '复制到这个工作表中
F = 0
S = ""
L = 1
With Wk1.ActiveSheet
For Each R In .Range(.Cells(1, 1), .Cells(.Cells(65536, 1).End(xlUp).Row, 1)).Cells
Select Case R.Value
Case "$title"
F = 1
'S = "$title"
Case "title"
If F Then
F = 0
'S = S & "title"
Wk2.ActiveSheet.Cells(L, 1) = S
S = ""
L = L + 1
End If
Case Else
If F Then S = S & R.Value & vbLf
End Select
Next
End With
End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-03
表述再清晰一些
相似回答