Xin chào mọi người,
Hiện tại em đang có 1 file excel như file đính kèm giờ em muốn bỏ các kí tự ngày tháng và số thứ tự đi
ví dụ: TH_CTY_CAM_THUY_03122018_11 em chỉ muốn lấy TH_CTY_CAM_THUY.
Có lưu ý là có một số tên như NA_DCU_DIEN_HAI_2_06122018_11 thì sau khi loại bỏ thì nó sẽ là NA_DCU_DIEN_HAI_2 vì số 2 ở đây dùng để phân biệt ạ.
Em cảm ơn
Xin chào mọi người,
Hiện tại em đang có 1 file excel như file đính kèm giờ em muốn bỏ các kí tự ngày tháng và số thứ tự đi
ví dụ: TH_CTY_CAM_THUY_03122018_11 em chỉ muốn lấy TH_CTY_CAM_THUY.
Có lưu ý là có một số tên như NA_DCU_DIEN_HAI_2_06122018_11 thì sau khi loại bỏ thì nó sẽ là NA_DCU_DIEN_HAI_2 vì số 2 ở đây dùng để phân biệt ạ.
Em cảm ơn
Function tach(ByVal str As String) As String
Static reg As Object
If reg Is Nothing Then Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "((?:_\d{1,2}))?(?:_\d{8}.*)?(?:_\d+)?$"
If reg.test(str) Then tach = reg.Replace(str, "$1")
End Function
Phải chuột trên tên sheet ở sheet tabs (ở cạnh dưới cửa sổ) -> View code -> dán code ở dưới vào module của Sheet1 -> vẫn trong VBE chọn menu Insert -> Module -> dán code dưới vào Module.
Khi bạn nhập, sửa đổi, xóa dữ liệu trong cột A của Sheet1 thì code sẽ nhập lại kết quả vào cột F. Tức bạn có thể chọn nhiều dòng trong cột A rồi DELETE hoặc copy ở đâu đó và dán hàng loạt vào cột A.
Do bạn đã có dữ liệu nên để khởi động lần đầu thì bạn đúp chuột vào A2 -> Enter.
Tôi hướng dẫn để bạn biết cách làm cho sau này. Tôi vẫn đính kèm tập tin.
Code cho Sheet1
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A10000")) Is Nothing Then bo_duoi
End Sub
Code cho Module
Mã:
Sub bo_duoi()
Dim lastRow As Long, r As Long, text As String, data(), re As Object
With ThisWorkbook.Worksheets("Sheet1")
.Range("F2:F10000").ClearContents
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
If lastRow = 1 Then Exit Sub
data = .Range("A2:A" & lastRow + 1).Value
End With
Application.EnableEvents = False
Set re = CreateObject("vbscript.regexp")
re.Pattern = "(?:_\d{8})?_\d+$"
For r = 1 To UBound(data) - 1
text = data(r, 1)
If re.test(text) Then data(r, 1) = re.Replace(text, "")
Next r
ThisWorkbook.Worksheets("Sheet1").Range("F2").Resize(UBound(data) - 1).Value = data
Set re = Nothing
Application.EnableEvents = True
End Sub
Xin chào mọi người,
Hiện tại em đang có 1 file excel như file đính kèm giờ em muốn bỏ các kí tự ngày tháng và số thứ tự đi
ví dụ: TH_CTY_CAM_THUY_03122018_11 em chỉ muốn lấy TH_CTY_CAM_THUY.
Có lưu ý là có một số tên như NA_DCU_DIEN_HAI_2_06122018_11 thì sau khi loại bỏ thì nó sẽ là NA_DCU_DIEN_HAI_2 vì số 2 ở đây dùng để phân biệt ạ.
Em cảm ơn