phantomxxx
Thành viên mới

- Tham gia
- 22/5/14
- Bài viết
- 1
- Được thích
- 0
Có bác nào rành về Macro cho em hỏi . Bên dưới là Macro loại bỏ dữ liệu trùng em sưu tầm được ở trên mạng .
Sub RemoveDupEntries()
'
Function Push(ByRef vArray As Variant, ByVal str As String)
'
Function IsMember(vArray As Variant, ByVal str As String)
Trong những văn bản lớn thì đoạn code này thực hiện rất lâu .
1 .Mong các Bác giúp em thay đổi Macro trên đơn giản hóa chỉ tìm ở trong Heading .
2 .Xóa dữ liệu trùng với một yêu cầu cho trước
Ví dụ :
- ABC xxxx xxx xx
- XYZ xx xxx xx
Chạy Macro
- XYZ xx xxx xx
Yêu cầu : Nếu đầu câu xuất hiện ABC thì xóa hết luôn đoạn văn bản.
Mong nhận được sự giúp đỡ của moi người. Cám ơn đã đọc bài viết.
Sub RemoveDupEntries()
Dim para As Paragraph
Dim doc As Document
Dim vEntries() As Variant
Dim vDupEntries() As Variant
Dim sParaText As String
ReDim vEntries(0)
ReDim vDupEntries(0)
Set doc = ActiveDocument
For Each para In doc.Paragraphs
sParaText = Left(para.Range.Text, para.Range.Characters.count - 1)
If IsMember(vEntries, sParaText) Then
If IsMember(vDupEntries, sParaText) = False Then
Push vDupEntries, sParaText
End If
Dim doc As Document
Dim vEntries() As Variant
Dim vDupEntries() As Variant
Dim sParaText As String
ReDim vEntries(0)
ReDim vDupEntries(0)
Set doc = ActiveDocument
For Each para In doc.Paragraphs
sParaText = Left(para.Range.Text, para.Range.Characters.count - 1)
If IsMember(vEntries, sParaText) Then
If IsMember(vDupEntries, sParaText) = False Then
Push vDupEntries, sParaText
End If
para.Range.Delete
Else
Push vEntries, sParaText
End If
Next para
' Now vDupEntries contains any items that were duplicated.
' You can insert it at the end of doc 3 as needed
' For example:
' Documents("Doc3").Content.InsertAfter Join(vDupEntries, vbCr)
End Sub Else
Push vEntries, sParaText
End If
Next para
' Now vDupEntries contains any items that were duplicated.
' You can insert it at the end of doc 3 as needed
' For example:
' Documents("Doc3").Content.InsertAfter Join(vDupEntries, vbCr)
'
Function Push(ByRef vArray As Variant, ByVal str As String)
ReDim Preserve vArray(UBound(vArray) + 1)
vArray(UBound(vArray)) = str
End Function vArray(UBound(vArray)) = str
'
Function IsMember(vArray As Variant, ByVal str As String)
Dim v As Variant
For Each v In vArray
If v = str Then
IsMember = True
Exit Function
End If
Next v
IsMember = False
End Function For Each v In vArray
If v = str Then
IsMember = True
Exit Function
End If
Next v
IsMember = False
Trong những văn bản lớn thì đoạn code này thực hiện rất lâu .
1 .Mong các Bác giúp em thay đổi Macro trên đơn giản hóa chỉ tìm ở trong Heading .
2 .Xóa dữ liệu trùng với một yêu cầu cho trước
Ví dụ :
- ABC xxxx xxx xx
- XYZ xx xxx xx
Chạy Macro
- XYZ xx xxx xx
Yêu cầu : Nếu đầu câu xuất hiện ABC thì xóa hết luôn đoạn văn bản.
Mong nhận được sự giúp đỡ của moi người. Cám ơn đã đọc bài viết.
Lần chỉnh sửa cuối: