Kiều Mạnh
I don't program, I beat code into submission!!!
- Tham gia
- 9/6/12
- Bài viết
- 5,538
- Được thích
- 4,135
- Giới tính
- Nam
Mình đang tập tành code mà nghĩ mãi không ra cách viết tạo mã hàng theo tên hàng bằng code...
vì vậy úp lên nhờ các bạn viết dùm...yều cầu ở trong file
xin cảm ơn nhiều nhiều
Public Function Chuoi(DL) As String
Dim Tam
Tam = Split(DL & " ", " ")
Chuoi = Left(Tam(0), 1) & Left(Tam(1), 1) & Left(Tam(2), 1)
End Function
Ok rồi đó bạn nhưng mình muốn tạo thành một sub hay cho nó chạy với Worksheet_ChangeThử hàm chuối này xem sao
Mã:Public Function Chuoi(DL) As String Dim Tam Tam = Split(DL & " ", " ") Chuoi = Left(Tam(0), 1) & Left(Tam(1), 1) & Left(Tam(2), 1) End Function
Cú pháp =chuoi( 1 ô nào đó )
Ok rồi đó bạn nhưng mình muốn tạo thành một sub hay cho nó chạy với Worksheet_Change
With Range([D1], [D200].End(3))
.Offset(4, -3).Value = "=IF(RC[3]="""","""",MAX(R3C:R[-1]C)+1)"
.Offset(4, -3).Value = .Offset(4, -3).Value
.Offset(4, -1) = "=chuoi(RC[1])" <-----Thêm dòng này
End With
ok cảm ơn bạn mình thêm như sau. nhưng mã hàng nó ra chữ thường hết ...có cách nào mình gõ chữ in hay thường thì mã vẫn ra chữ inĐoạn code trong sheet1, thêm cái này xem sao
Mã:With Range([D1], [D200].End(3)) .Offset(4, -3).Value = "=IF(RC[3]="""","""",MAX(R3C:R[-1]C)+1)" .Offset(4, -3).Value = .Offset(4, -3).Value .Offset(4, -1) = "=chuoi(RC[1])" <-----Thêm dòng này End With
.Offset(4, -1) = "=chuoi(RC[1])" '' <--Them dong nay tao ma khach hang
.Offset(4, -1).Value = .Offset(4, -1).Value
Thử hàm chuối này xem sao
Mã:Public Function Chuoi(DL) As String Dim Tam Tam = Split(DL & " ", " ") Chuoi = Left(Tam(0), 1) & Left(Tam(1), 1) & Left(Tam(2), 1) End Function
Cú pháp =chuoi( 1 ô nào đó )
Function KTDT(byVal s as string) as String
dim c as variant
For Each c in Split(s, " ")
KTDT = KTDT & Left(c, 1)
Next c
End Function


ok cảm ơn bạn mình thêm như sau. nhưng mã hàng nó ra chữ thường hết ...có cách nào mình gõ chữ in hay thường thì mã vẫn ra chữ in
Mã:.Offset(4, -1) = "=chuoi(RC[1])" '' <--Them dong nay tao ma khach hang .Offset(4, -1).Value = .Offset(4, -1).Value
Function TenTat(ByVal Text) As String
On Error Resume Next
Dim tmp As String
tmp = "{""" & Replace(WorksheetFunction.Trim(Text), " ", """;""") & """}"
tmp = "Transpose(LEFT(" & tmp & ",1))"
TenTat = Join(Evaluate(tmp), "")
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cel As Range, rng As Range, ret As String
On Error Resume Next
If Not Intersect(Range("D5:D200"), Target) Is Nothing Then
Set rng = Intersect(Range("D5:D200"), Target)
For Each cel In rng
ret = Left(TenTat(cel.Value), 3)
cel.Offset(, -1).Value = UCase(ret)
Next
End If
End Sub
