Chèn thêm ký tự vào đầu hoặc cuối cell

Liên hệ QC

ExQues

Thành viên mới
Tham gia
4/7/08
Bài viết
49
Được thích
0
Các bạn chỉ giúp giùm cách chèn thêm 1 ký tự vào đầu hoặc cuối cell.

Ví dụ: Trong cell đã có chữ ABC, chèn thêm vào ký tự đầu và cuối thành TABCM.

Trong cùng 1 cột nên mỗi cell có mỗi chữ khác nhau, dù cho có chữ gì thì vẫn cứ chèn đầu và cuối.

Xin cám ơn anh chị
 
Các bạn chỉ giúp giùm cách chèn thêm 1 ký tự vào đầu hoặc cuối cell.

Ví dụ: Trong cell đã có chữ ABC, chèn thêm vào ký tự đầu và cuối thành TABCM.

Trong cùng 1 cột nên mỗi cell có mỗi chữ khác nhau, dù cho có chữ gì thì vẫn cứ chèn đầu và cuối.

Xin cám ơn anh chị
Bạn có thể sử dụng hàm nối chuổi hoặc VBA.
Bạn gởi kèm file lên với câu hỏi rõ ràng hơn nhá, mình chưa hiểu ý bạn lắm.
À! mà thêm vào đầu và cuối trong cell chữ gì cũng được hay là hai ký tự "T" ở đầu và "M" ở cuối.
Thân chào!
 
Các bạn chỉ giúp giùm cách chèn thêm 1 ký tự vào đầu hoặc cuối cell.

Ví dụ: Trong cell đã có chữ ABC, chèn thêm vào ký tự đầu và cuối thành TABCM.

Trong cùng 1 cột nên mỗi cell có mỗi chữ khác nhau, dù cho có chữ gì thì vẫn cứ chèn đầu và cuối.

Xin cám ơn anh chị
Ô A1 đang chứa chữ ABC
Ô B1 gõ công thức: ="T" & A1 & "M"
Copy công thức xuống dưới.
 
Ô A1 đang chứa chữ ABC
Ô B1 gõ công thức: ="T" & A1 & "M"
Copy công thức xuống dưới.
Sẳn đây cho mình hỏi tí?
Giả sử nếu hai chữ đầu và cuối không phải là "T" và "M" thì mình phải dùng code VBA phải không hay là dùng công thức?
Nếu dùng VBA thì mình làm thế nào?
Vì mình rất dốt lĩnh vực này!
 
Sẳn đây cho mình hỏi tí?
Giả sử nếu hai chữ đầu và cuối không phải là "T" và "M" thì mình phải dùng code VBA phải không hay là dùng công thức?
Nếu dùng VBA thì mình làm thế nào?
Vì mình rất dốt lĩnh vực này!

Tại sao phải dùng VBA, nếu là 2 chữ khác thì cũng làm vậy thôi.
 
Sẳn đây cho mình hỏi tí?
Giả sử nếu hai chữ đầu và cuối không phải là "T" và "M" thì mình phải dùng code VBA phải không hay là dùng công thức?
Nếu dùng VBA thì mình làm thế nào?
Vì mình rất dốt lĩnh vực này!
Dùng VBA thì cũng y chang bạn gõ công thức thôi
Sub Test()
Dim Clls As Range
For Each Clls In Range(".. gì gì đó...") '<--- Vùng mà bạn cần thay thế
Clls = "T" & Clls & "M"
Next
End Sub

Vậy thôi
 
Chưa hiểu lắm ---> Bạn phải nêu rõ quy luật chứ?
Quy luật thế này:
Nếu dữ liệu gõ vào ở dạng số (123) thì thêm đầu cuối là "T" và "M"
Nếu dữ liệu gõ vào ở dạng chữ (abc) thì thêm vào đầu cuối là "T" và "N"
Nếu dữ liệu gõ vào ở dạng hỗn hợp (ab1) thì thêm vào đầu cuối là "H" và "F"
Điều này có thể làm được không bạn?
Xin chỉ giáo!
 
Quy luật thế này:
Nếu dữ liệu gõ vào ở dạng số (123) thì thêm đầu cuối là "T" và "M"
Nếu dữ liệu gõ vào ở dạng chữ (abc) thì thêm vào đầu cuối là "T" và "N"
Nếu dữ liệu gõ vào ở dạng hỗn hợp (ab1) thì thêm vào đầu cuối là "H" và "F"
Điều này có thể làm được không bạn?
Xin chỉ giáo!
Thuật toán của tôi là:
- 1 vòng lập quét qua các cell
- Thêm 1 vòng lập từ 0 đến 9 ---> Dùng hàm Replace thay thế lần lượt các số từ 0 đến 9 vào các cell
- Xét kết quả cuối cùng:
- Nếu Len(Kết quả) = Len(Cell) ---> cell này chứa toàn chữ
- Nếu Len(kết quả) = 0 ---> Cell này chứa toàn số
- trường hợp còn lại là HỔN HỢP
PHP:
Sub Test()
  Dim Clls As Range, Temp As String, i As Long
  For Each Clls In Range("A1:A16")
    Temp = Clls
    For i = 0 To 9
      Temp = Replace(Temp, i, "")
    Next i
    If Len(Temp) = 0 Then
      Clls = "T" & Clls & "M"
    ElseIf Len(Temp) = Len(Clls) Then
      Clls = "T" & Clls & "N"
    Else
      Clls = "H" & Clls & "F"
    End If
  Next Clls
End Sub
'
Với dử liệu nhập nằm tại vùng A1:A16
Đại khái thế ---> Bạn có thể cải tiến thêm
 
Thêm 1 tham khảo nè!

PHP:
Sub Module1()
 Const StrC As String = "1234567890"
 Dim Clls As Range, Dai As Byte, jJ As Byte
 For Each Clls In Range([J1], [J65500].End(xlUp))
   If IsNumeric(Clls.Value) And Clls.Value <> "" Then
      Clls.Value = "T" & Clls.Value & "M"
   ElseIf Len(Clls.Value) > 0 Then
      For jJ = 1 To 10
         If InStr(Clls.Value, Mid(StrC, jJ, 1)) > 0 Then
            Clls.Value = "H" & Clls.Value & "F"
            Exit For
         End If
      Next jJ
      If jJ > 10 Then Clls.Value = "T" & Clls.Value & "N"
   End If
 Next Clls
End Sub
 
Lần chỉnh sửa cuối:
Hàm tự tạo.

Quy luật thế này:
Nếu dữ liệu gõ vào ở dạng số (123) thì thêm đầu cuối là "T" và "M"
Nếu dữ liệu gõ vào ở dạng chữ (abc) thì thêm vào đầu cuối là "T" và "N"
Nếu dữ liệu gõ vào ở dạng hỗn hợp (ab1) thì thêm vào đầu cuối là "H" và "F"
Điều này có thể làm được không bạn?
Xin chỉ giáo!

Mình góp thêm 1 hàm tự tạo :

PHP:
Function Add(Cll As Range) As String
    Dim i As Integer, j As Integer, kq As String
    For i = 1 To Len(Cll)
        If Mid(Cll, i, 1) Like "[0-9]" Then j = j + 1
    Next i
    If j = 0 Then
        kq = "T" & Cll & "N"
    ElseIf j = Len(Cll.Text) Then kq = "T" & Cll & "M"
    Else: kq = "H" & Cll & "F"
    End If
    If Cll = "" Then kq = ""
    Add = kq
End Function
 

File đính kèm

  • Add.xls
    24.5 KB · Đọc: 121
Lần chỉnh sửa cuối:
Chào các anh.
Em có dữ liệu cột B, trong trường hợp nếu cột B có ô cell chứa kí tự "C" Ví dụ C1256 thì thêm thêm chữ TP vào đằng sau là : C1256TP còn các trường hợp khác thì để nguyên không thêm kí tự vào.
mong các anh giúp em tạo 1 vba thì càng tốt ạ, Em xin chân thành cám ơn
 
Chào các anh.
Em có dữ liệu cột B, trong trường hợp nếu cột B có ô cell chứa kí tự "C" Ví dụ C1256 thì thêm thêm chữ TP vào đằng sau là : C1256TP còn các trường hợp khác thì để nguyên không thêm kí tự vào.
mong các anh giúp em tạo 1 vba thì càng tốt ạ, Em xin chân thành cám ơn
Thì tạm thế này thôi .
 

File đính kèm

  • Them chu vao cell.xls
    21.5 KB · Đọc: 166
Quy luật thế này:
Nếu dữ liệu gõ vào ở dạng số (123) thì thêm đầu cuối là "T" và "M"
Nếu dữ liệu gõ vào ở dạng chữ (abc) thì thêm vào đầu cuối là "T" và "N"
Nếu dữ liệu gõ vào ở dạng hỗn hợp (ab1) thì thêm vào đầu cuối là "H" và "F"
Điều này có thể làm được không bạn?
Xin chỉ giáo!
Mình dùng thử công thức mảng:
=IF(A1="","",IF(SUM(IF(ISNUMBER(--MID(A1,ROW($1:$256),1)),1))=0,"T"&A1&"N",IF(SUM(IF(ISNUMBER(--MID(A1,ROW($1:$256),1)),1))=LEN(A1),"T"&A1&"M","H"&A1&"F")))
Bạn nhấn CtrL + Shift + Enter
 
Chào các anh.
Em có dữ liệu cột B, trong trường hợp nếu cột B có ô cell chứa kí tự "C" Ví dụ C1256 thì thêm thêm chữ TP vào đằng sau là : C1256TP còn các trường hợp khác thì để nguyên không thêm kí tự vào.
mong các anh giúp em tạo 1 vba thì càng tốt ạ, Em xin chân thành cám ơn
Bạn thử đoạn code này xem sao. Dữ liệu tại sheet1 cột B
PHP:
Public Sub THEMKYTU()
Dim i As Long
For i = 1 To Sheet1.Range("B65000").End(xlUp).Row
If InStr(1, Sheet1.Range("B" & i), "C", 1) Then
Sheet1.Range("B" & i) = Sheet1.Range("B" & i) & "TP"
End If
Next i
End Sub
Làm thế này là sẽ thay đổi hoàn tòan dữ liệu gốc của cột B đó bạn.
 
Bạn thử đoạn code này xem sao. Dữ liệu tại sheet1 cột B
PHP:
Public Sub THEMKYTU()
Dim i As Long
For i = 1 To Sheet1.Range("B65000").End(xlUp).Row
If InStr(1, Sheet1.Range("B" & i), "C", 1) Then
Sheet1.Range("B" & i) = Sheet1.Range("B" & i) & "TP"
End If
Next i
End Sub
Làm thế này là sẽ thay đổi hoàn tòan dữ liệu gốc của cột B đó bạn.

Hay quá, đúng ý em cần rồi. Cám ơn bác nhá.
Bác cho em hỏi tý nữa nhé: Giả sử các ô khi mình kích lệnh THEMKYTU nó chạy ra CxxxxTP,
sau đó em lại kích lệnh lần nữa nó ra CxxxxTPTP, có cách nào mà khi mình ấn lệnh lần 2 hoặc lần thứ n mà nó vẫn ra kết quả là CxxxxTP không bác.
 
Hay quá, đúng ý em cần rồi. Cám ơn bác nhá.
Bác cho em hỏi tý nữa nhé: Giả sử các ô khi mình kích lệnh THEMKYTU nó chạy ra CxxxxTP,
sau đó em lại kích lệnh lần nữa nó ra CxxxxTPTP, có cách nào mà khi mình ấn lệnh lần 2 hoặc lần thứ n mà nó vẫn ra kết quả là CxxxxTP không bác.
PHP:
Sub QH()
Dim i As Long, data()
data = Range([B1], [B65536].End(3)).Value
For i = 1 To UBound(data)
   If Left(data(i, 1), 1) = "C" Then
      If Right(data(i, 1), 2) <> "TP" Then
         data(i, 1) = data(i, 1) & "TP"
      End If
   End If
Next
[B1].Resize(i - 1, 1) = data
End Sub
 
PHP:
Sub QH()
Dim i As Long, data()
data = Range([B1], [B65536].End(3)).Value
For i = 1 To UBound(data)
   If Left(data(i, 1), 1) = "C" Then
      If Right(data(i, 1), 2) <> "TP" Then
         data(i, 1) = data(i, 1) & "TP"
      End If
   End If
Next
[B1].Resize(i - 1, 1) = data
End Sub

Cám ơn anh nhiều lắm.
Code anh viết chạy rất nhanh và tốc độ.
Anh ơi, giả sử bài toán của mình là có 2 chế độ, 1 là thêm chữ TP vào toàn bộ các ô có chữ C ở cột B, và 2 là cần thêm chữ TP vào những dòng mà mình chọn thì có làm được không anh. Ví dụ như em muốn chọn dòng 15, 20,. ... hay bất kỳ dòng nào khác.
 
Web KT
Back
Top Bottom