Dùng replace cho các chuỗi ký tự như thế nào?

Liên hệ QC

linhlan

Thành viên chính thức
Tham gia
9/8/10
Bài viết
71
Được thích
204
Mình đang gặp khó khăn khi muốn xoá 1 loạt các dòng có chuỗi ký tự như sau: (Thay bởi ký tự rỗng) (Tài liệu được biên soạn trong Word)
<CellCellID="C_1" CellID2="C_2" Value="
<CellCellID="C_2" CellID2="C_2" Value="
<CellCellID="C_3" CellID2="C_2" Value="
<CellCellID="C_4" CellID2="C_2" Value="
<CellCellID="C_5" CellID2="C_2" Value="
<CellCellID="C_6" CellID2="C_2" Value="
<CellCellID="C_7" CellID2="C_2" Value="
.....

đến
<CellCellID="C_3540" CellID2="C_2" Value="

Trong tài liệu này chỉ khác nhau có "C_1" đến "C_3540".
Nếu dùng replace
<CellCellID="C_1" CellID2="C_2" Value lần lượt đến <CellCellID="C_3540" CellID2="C_2" Value thì quá lâu.
Các bạn có cách nào dùng replace để thay 1 loạt chuỗi ký tự này. Mình đang sử dụng office 2003. Xin cám ơn

i6112_replace.png

 
Lần chỉnh sửa cuối:
Mình đang gặp khó khăn khi muốn xoá 1 loạt các dòng có chuỗi ký tự như sau: (Thay bởi ký tự rỗng) (Tài liệu được biên soạn trong Word)
<CellCellID="C_1" CellID2="C_2" Value="
<CellCellID="C_2" CellID2="C_2" Value="
<CellCellID="C_3" CellID2="C_2" Value="
<CellCellID="C_4" CellID2="C_2" Value="
<CellCellID="C_5" CellID2="C_2" Value="
<CellCellID="C_6" CellID2="C_2" Value="
<CellCellID="C_7" CellID2="C_2" Value="
.....

đến
<CellCellID="C_3540" CellID2="C_2" Value="

Trong tài liệu này chỉ khác nhau có "C_1" đến "C_3540".
Nếu dùng replace
<CellCellID="C_1" CellID2="C_2" Value lần lượt đến <CellCellID="C_3540" CellID2="C_2" Value thì quá lâu.
Các bạn có cách nào dùng replace để thay 1 loạt chuỗi ký tự này. Mình đang sử dụng office 2003. Xin cám ơn
Dùng Replace với từ khóa này <CellCellID="C_*" CellID2="C_2" Value="

Không biết dữ liệu còn lại là những gì nên có thể cách này sẽ xóa đi các dữ liệu khác không thuộc diện xóa

Nếu có một file giả lập một cách tổng quát có lẽ sẽ có cách cụ thể hơn.
 
mình đang gặp khó khăn khi muốn xoá 1 loạt các dòng có chuỗi ký tự như sau: (thay bởi ký tự rỗng) (tài liệu được biên soạn trong word)
<cellcellid="c_1" cellid2="c_2" value="
<cellcellid="c_2" cellid2="c_2" value="
<cellcellid="c_3" cellid2="c_2" value="
<cellcellid="c_4" cellid2="c_2" value="
<cellcellid="c_5" cellid2="c_2" value="
<cellcellid="c_6" cellid2="c_2" value="
<cellcellid="c_7" cellid2="c_2" value="
.....

đến
<cellcellid="c_3540" cellid2="c_2" value="

trong tài liệu này chỉ khác nhau có "c_1" đến "c_3540".
Nếu dùng replace
<cellcellid="c_1" cellid2="c_2" value lần lượt đến <cellcellid="c_3540" cellid2="c_2" value thì quá lâu.
các bạn có cách nào dùng replace để thay 1 loạt chuỗi ký tự này. Mình đang sử dụng office 2003. Xin cám ơn

i6112_replace.png

neu la file word thì tôi không biêt , nhưng nêu là excel chắc có thể được nhưng bạn thư gởi file là chắc ăn nhất
 
<CellCellID="C_*" CellID2="C_2" Value=". Không được bạn ơi.

 

File đính kèm

  • draft.rar
    21.2 KB · Đọc: 18
<CellCellID="C_*" CellID2="C_2" Value=". Không được bạn ơi.

- Bấm Alt + F11 và chèn 1 module
- Chèn code này vào:
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 4 To 286
    Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
    Selection.Find.Execute Replace:=wdReplaceAll
  Next
End Sub
- Bấm Ctrl + A để chọn hết dữ liệu rồi Alt + F8, chọn sub ReplaceText và bấm Run
- Chở xem kết quả
 
Vâng, cơ bản là tôi muốn còn lại như file bạn vừa làm. Mong được chỉ giáo tuyệt chiêu để tôi học thêm vì còn sử dụng cho nhiều công việc khác
 
<CellCellID="C_*" CellID2="C_2" Value=". Không được bạn ơi.

Tôi cứ tưởng là trên Excel. Excel mới sử dụng ký tự đại diện được.

- Bấm Alt + F11 và chèn 1 module
- Chèn code này vào:
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 4 To 286
    Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
    Selection.Find.Execute Replace:=wdReplaceAll
  Next
End Sub
- Bấm Ctrl + A để chọn hết dữ liệu rồi Alt + F8, chọn sub ReplaceText và bấm Run
- Chở xem kết quả
Tôi nghĩ không nên làm quá tắt như vậy. Nên có thêm dòng .Replacement.Text. Vì nếu trước đó người ta dùng Replace thì MS sẽ lưu lại chuỗi này.
PHP:
Sub GPE()
Dim i As Long
Selection.GoTo , , 1
For i = 1 To 100
    With Selection.Find
        .Text = "<Cell CellID=""C_" & i & """ CellID2=""C_2"" Value="""
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
Next
End Sub
 
Vâng, cơ bản là tôi muốn còn lại như file bạn vừa làm. Mong được chỉ giáo tuyệt chiêu để tôi học thêm vì còn sử dụng cho nhiều công việc khác
Xem file là biết copy sang Excel xử lý rồi copy lại Word rồi. Nhưng mà sau khi copy lại nó sẽ là một cái bảng.
 
- Bấm Alt + F11 và chèn 1 module
- Chèn code này vào:


PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 4 To 286
    Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
    Selection.Find.Execute Replace:=wdReplaceAll
  Next
End Sub
- Bấm Ctrl + A để chọn hết dữ liệu rồi Alt + F8, chọn sub ReplaceText và bấm Run
- Chở xem kết quả

Thật hân hạnh được thọ giáo bài học của bạn, tiếc thay hơi chậm tiêu xin được hướng dẫn từng bước. Tôi cũng đã làm thứ tự như sau:

Bước 1: Tôi mở tập tin ra, dùng Alt + F11 và dán code của bạn đã share cho

i6115_tuan001.png



Bước 2: Tôi trở về tài liệu chính, dùng Ctrl +A và Alt + F8 thì tới đây tôi hơi bị bí, mong được chỉ giáo. Chân thành cám ơn bạn
i6116_tuan002.png
 
Thật hân hạnh được thọ giáo bài học của bạn, tiếc thay hơi chậm tiêu xin được hướng dẫn từng bước. Tôi cũng đã làm thứ tự như sau:

Bước 1: Tôi mở tập tin ra, dùng Alt + F11 và dán code của bạn đã share cho

Bước 2: Tôi trở về tài liệu chính, dùng Ctrl +A và Alt + F8 thì tới đây tôi hơi bị bí, mong được chỉ giáo. Chân thành cám ơn bạn
Hình như bạn copy code của tôi bị thiếu thì phải (Thiếu dòng đầu)
Code của tôi là:
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 4 To 286
    Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
    Selection.Find.Execute Replace:=wdReplaceAll
  Next
End Sub
cơ mà
Code thiếu nên khi Alt + F8 sẽ chẳng thấy gì
Tuy nhiên, cũng như ý kiến của bạn huuthang, ta nên sửa code vầy sẽ chắc ăn hơn
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 1 To 3540
    With Selection.Find
      .Text = "<Cell CellID=""C_" & i & """ CellID2=""C_2"" Value="""
      .Replacement.Text = ""
      .Execute Replace:=wdReplaceAll
    End With
  Next
End Sub
Thử lại xem!
 
Lần chỉnh sửa cuối:
Hình như bạn copy code của tôi bị thiếu thì phải (Thiếu dòng đầu)
Code của tôi là:
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 4 To 286
    Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
    Selection.Find.Execute Replace:=wdReplaceAll
  Next
End Sub
cơ mà
Code thiếu nên khi Alt + F8 sẽ chẳng thấy gì
Tuy nhiên, cũng như ý kiến của bạn huuthang, ta nên sửa code vầy sẽ chắc ăn hơn
PHP:
Sub ReplaceText()
  Dim i As Long
  For i = 1 To 3540
    With Selection.Find
      .Text = "<Cell CellID=""C_" & i & """ CellID2=""C_2"" Value="""
      .Replacement.Text = ""
      .Execute Replace:=wdReplaceAll
    End With
  Next
End Sub
Thử lại xem!

Trên cả tuyệt vời bạn ơi, xử lý rất tốt

i6120_tuan003.png



Bạn có thể chia sẻ giải thích thêm code dưới đây dùm tôi không để tôi có díp ứng dụng

Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
Đoạn trước đây tôi cần thay thế:
<CellCellID="C_4" CellID2="C_2" Value="

Tôi muốn thay hẳn đoạn chuỗi ký tự sau (theo bài trên) Vui lòng bổ sung đoạn code cho tôi

<CellCellID="C_4" CellID2="C_2" Value="2###



Cám ơn hai bạn Nguyễn Hữu Thắng và Le duy Thuong đã nhanh giúp đỡ cho tôi. Mong hai bạn đừng giận nhau, là người nhà cả mà

 
Lần chỉnh sửa cuối:
Trên cả tuyệt vời bạn ơi, xử lý rất tốt
Bạn có thể chia sẻ giải thích thêm code dưới đây dùm tôi không để tôi có díp ứng dụng
Nói thật là tôi chẳng biết tí gì về Word cả ---> Chỉ là tôi thử record macro xem khi ta dùng Find and Replace để thay thế 1 chuổi thì code viết thế nào, từ đó vào chỉnh sửa lại code thôi!
Mà bạn có biết record macro không nhỉ? (menu Tools\Macro\Record New Macro)...
 
Nói thật là tôi chẳng biết tí gì về Word cả ---> Chỉ là tôi thử record macro xem khi ta dùng Find and Replace để thay thế 1 chuổi thì code viết thế nào, từ đó vào chỉnh sửa lại code thôi!
Mà bạn có biết record macro không nhỉ? (menu Tools\Macro\Record New Macro)...

Thú thật lĩnh vực này tôi không am hiểu, 1/2 chữ macro cũng dốt đặc. Chính vì thế, tôi nhờ tình cảm của các bạn để chia sẻ cho tôi nhờ, học hỏi thêm để công việc được thuận lợi

Trên cả tuyệt vời bạn ơi, xử lý rất tốt




Bạn có thể chia sẻ giải thích thêm code dưới đây dùm tôi không để tôi có díp ứng dụng

Selection.Find.Text = "<Cell CellID=""C_" & i & """ "
Đoạn trước đây tôi cần thay thế:
<CellCellID="C_4" CellID2="C_2" Value="

Tôi muốn thay hẳn đoạn chuỗi ký tự sau (theo bài trên)

Vui lòng bổ sung đoạn code cho tôi

<CellCellID="C_4" CellID2="C_2" Value="2###
 
Thú thật lĩnh vực này tôi không am hiểu, 1/2 chữ macro cũng dốt đặc. Chính vì thế, tôi nhờ tình cảm của các bạn để chia sẻ cho tôi nhờ, học hỏi thêm để công việc được thuận lợi
Bạn cứ thường xuyên tham gia diễn đàn này đi ---> Bảo đảm khoảng 1 năm sau bạn sẽ thành cao thủ về lập trình thôi (chính là macro ấy)
Mà nói về lập trình, về code hay macro thì Word và Excel cũng hao hao giống nhau đấy!
 
Đoạn trước đây tôi cần thay thế:
<CellCellID="C_4" CellID2="C_2" Value="

Tôi muốn thay hẳn đoạn chuỗi ký tự sau (theo bài trên) Vui lòng bổ sung đoạn code cho tôi

<CellCellID="C_4" CellID2="C_2" Value="2###



Chữ to chưa hẳn là dễ nhìn đâu.
PHP:
Sub GPE()
Dim i As Long
Selection.GoTo , , 1
For i = 1 To 100
    With Selection.Find
        .Text = "<Cell CellID=""C_" & i & """ CellID2=""C_2"" Value=""" & (i -2) & "###"
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
Next
End Sub
 
PHP:
Sub GPE()
Dim i As Long
Selection.GoTo , , 1
For i = 1 To 100
    With Selection.Find
        .Text = "<Cell CellID=""C_" & i & """ CellID2=""C_2"" Value=""" & (i -2) & "###"
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
    End With
Next
End Sub

Chữ to chưa hẳn là dễ nhìn đâu.
Trước hết do tôi lớn tuổi nên mắt yếu bạn thông cảm cho.

Bạn xem lại đoạn code của bạn có gì không ổn sau khi mình cốp đoạn mã của bạn chỉ dạy cho

i6125_thang.png
 
Trước hết do tôi lớn tuổi nên mắt yếu bạn thông cảm cho.

Bạn xem lại đoạn code của bạn có gì không ổn sau khi mình cốp đoạn mã của bạn chỉ dạy cho

i6125_thang.png
Hình như là chưa Enable Macro. Bạn kiểm tra lại thử xem.
 
Web KT
Back
Top Bottom