trongmuaanhvancho
Thành viên hoạt động



- Tham gia
- 24/9/07
- Bài viết
- 138
- Được thích
- 2
Thử công thức sauTrong file e đã mô tả chi tiết, nhờ anh chị xem giúp
=SUBSTITUTE(SUBSTITUTE(A2,C2,""),D2,"")
=LEFT(A2,LEN(A2)-SUM(LEN(C2:D2))-1)
1 cách khác:Trong file e đã mô tả chi tiết, nhờ anh chị xem giúp
Sub abc()
Columns(2).Value = Columns(1).Value
With Columns("B")
.Replace ("C" & ChrW(7842) & "M " & ChrW(7912) & "NG") & "*", ""
.Replace "MÀN HÌNH", ""
End With
End Sub
Thêm 1 cách khác cho bạn.Trong file e đã mô tả chi tiết, nhờ anh chị xem giúp
B2=TRIM(LEFT(A2,FIND(C2,A2)-1))
Bài này em thấy bạn chủ Thread muốn replace không những chỉ 1 cột mà là nhiều cột bên cạnh (Dòng số 2).1 cách khác:
PHP:Sub abc() Columns(2).Value = Columns(1).Value With Columns("B") .Replace ("C" & ChrW(7842) & "M " & ChrW(7912) & "NG") & "*", "" .Replace "MÀN HÌNH", "" End With End Sub
Chủ Topic nói trong File là lọc kết quả như cột B mà em.Bài này em thấy bạn chủ Thread muốn replace không những chỉ 1 cột mà là nhiều cột bên cạnh (Dòng số 2).
Anh khái quát hóa cho nhiều cột thì "bá đạo"
Tổng quátTrong file e đã mô tả chi tiết, nhờ anh chị xem giúp
=RemoveText(A2;$C2:$D2)
Function RemoveText(Text As String, rText As Variant) As String
Dim aText As Variant, i As Long
aText = SortLength(rText)
For i = 1 To UBound(aText)
Text = Replace(Text, aText(i), vbTab)
Next
RemoveText = Replace(Text, vbTab, "")
End Function
Private Function SortLength(ByVal rText As Variant)
Dim n As Long, k As Long, i As Long, j As Long, aResult() As Variant, item As Variant, tmp As String
rText = rText
If IsArray(rText) Then
For Each item In rText
n = n + 1
ReDim Preserve aResult(1 To n)
aResult(n) = item
Next
For i = 1 To n - 1
k = i
For j = i + 1 To n
If Len(aResult(j)) > Len(aResult(k)) Then k = j
Next
tmp = aResult(i): aResult(i) = aResult(k): aResult(k) = tmp
Next
Else
ReDim aResult(1 To 1)
aResult(1) = rText
End If
SortLength = aResult
End Function
=CutText($A2,$C2:$D2)
Function CutText(a As Range, Rangeselect As Range) As String
Dim b As String, c As String
b = a
For Each cell In Rangeselect
b = Replace(b, cell, "")
Next
c = Trim(b)
If Right(c, 1) = "/" Then
CutText = Trim(Left(c, Len(c) - 1))
Else
CutText = c
End If
End Function
Làm tạm thì ra kết quả "tạm"Mình thì toàn làm tạm:
Mã:=CutText($A2,$C2:$D2)
Mã:Function CutText(a As Range, Rangeselect As Range) As String Dim b As String, c As String b = a For Each cell In Rangeselect b = Replace(b, cell, "") Next c = Trim(b) If Right(c, 1) = "/" Then CutText = Trim(Left(c, Len(c) - 1)) Else CutText = c End If End Function
uh, đúng vậy. Haha, ko phải bài toán của mình có khác, chả suy nghĩ gì. @@
Function CutText(a As Range, Rangeselect As Range) As String
Dim b As String, c As String
b = a
For Each cell In Rangeselect
d = Split(cell, " ")
For Each xx In d
b = Replace(b, xx, "")
Next
Next
c = Trim(b)
If Right(c, 1) = "/" Then
CutText = Trim(Left(c, Len(c) - 1))
Else
CutText = c
End If
End Function
Cắt "Diễn giải" trong "Diễn đàn giải pháp Excel" chắc sẽ được "đàn pháp Excel"uh, đúng vậy. Haha, ko phải bài toán của mình có khác, chả suy nghĩ gì. @@
Sửa thêm vậy:
Mã:Function CutText(a As Range, Rangeselect As Range) As String Dim b As String, c As String b = a For Each cell In Rangeselect d = Split(cell, " ") For Each xx In d b = Replace(b, xx, "") Next Next c = Trim(b) If Right(c, 1) = "/" Then CutText = Trim(Left(c, Len(c) - 1)) Else CutText = c End If End Function
Ai biết nó phức tạp vầy. =))Cắt "Diễn giải" trong "Diễn đàn giải pháp Excel" chắc sẽ được "đàn pháp Excel"![]()