Có 2 sub: "Sub Button2_Click()"em pase code vào ko biết sai gì mà code ko chạy
anh xem giúp em với ạ
nút Run gọi lệnh không đúng
Có 2 sub: "Sub Button2_Click()"em pase code vào ko biết sai gì mà code ko chạy
anh xem giúp em với ạ
Sheet4 không có gì để xử lýtrong file vd3 em up lên, anh @excel_lv1.5 có viết giúp em hoàn chỉnh code ở sheet1 và sheet3
còn sheet2 và sheet4chưa đc hoàn chỉnh lắm, em có ghi nội dung cần ở trong mỗi sheet ạ
cảm ơn anh !
dạ anh dựa vào code anh @excel_lv1.5 viết thêm code ở sheet4 nội dung như sau ạSheet4 không có gì để xử lý
Mình dựa vào code của @excel_lv1.5 để viết lại theo cách của mình, cần gì cứ nói yêu cầu
trong bài em có up lại file thành vd3 (1), nhờ anh xem bài và viết thêm hộ em code ở sheet4 với ạSheet4 không có gì để xử lý
Mình dựa vào code của @excel_lv1.5 để viết lại theo cách của mình, cần gì cứ nói yêu cầu
trong bài em có up lại file thành vd3 (1), nhờ anh xem bài và viết thêm hộ em code ở sheet4 với ạ
em cảm ơn anh!
Sub Strformats(ByVal shName As String)
Dim Rng As Range, tStr As String
Dim i As Long, j As Long, sCol As Long, nlen As Long
With Sheets(shName)
sCol = .Range("A1").End(xlToRight).Column
Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row)
For i = 1 To Rng.Rows.Count
tStr = Rng(i, 1).Value
For j = 2 To sCol - 1
Select Case shName
Case "Sheet1"
tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j)
Case "Sheet2"
tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j)
Case "Sheet3"
tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j)
Case Else
tStr = tStr & Rng(i, j)
End Select
Next j
With Rng(i, sCol)
.Value = tStr
nlen = 0
For j = 1 To sCol - 1
nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" Or shName = "Sheet4") And j = 2, 0, 1)
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name
Next j
End With
Next i
End With
End Sub
Sub Button2_Click()
Dim i As Long, shArr()
shArr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4")
Application.ScreenUpdating = False
For i = 0 To UBound(shArr)
Call Strformats(shArr(i))
Next
Application.ScreenUpdating = True
End Sub
em chạy thì thấy ra kết quả ok hết rùi anhMã:Sub Strformats(ByVal shName As String) Dim Rng As Range, tStr As String Dim i As Long, j As Long, sCol As Long, nlen As Long With Sheets(shName) sCol = .Range("A1").End(xlToRight).Column Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row) For i = 1 To Rng.Rows.Count tStr = Rng(i, 1).Value For j = 2 To sCol - 1 Select Case shName Case "Sheet1" tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j) Case "Sheet2" tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j) Case "Sheet3" tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j) Case Else tStr = tStr & Rng(i, j) End Select Next j With Rng(i, sCol) .Value = tStr nlen = 0 For j = 1 To sCol - 1 nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" Or shName = "Sheet4") And j = 2, 0, 1) .Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color .Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size .Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold .Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic .Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name Next j End With Next i End With End Sub Sub Button2_Click() Dim i As Long, shArr() shArr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4") Application.ScreenUpdating = False For i = 0 To UBound(shArr) Call Strformats(shArr(i)) Next Application.ScreenUpdating = True End Sub
Thêm 4 dòng lệnhem chạy thì thấy ra kết quả ok hết rùi anh
em thấy còn lỗi chổ này nữa anh
vd sheet1 nhập dữ liệu xong bấm Run để chạy ra dc kết quả, sau đó em xóa dữ liệu đi bấm Run thì nó vẫn hiển thị kết quả cũ anh
em thấy 4 sheet đều bị như vậy anh
Sub Strformats(ByVal shName As String)
Dim Rng As Range, tStr As String
Dim i As Long, j As Long, sCol As Long, nlen As Long
With Sheets(shName)
sCol = .Range("A1").End(xlToRight).Column
i = .Cells(65500, sCol).End(xlUp).Row
If i > 1 Then .Range("E2:E" & i).ClearContents
i = .Range("A65500").End(xlUp).Row
If i < 2 Then Exit Sub
Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row)
For i = 1 To Rng.Rows.Count
tStr = Rng(i, 1).Value
For j = 2 To sCol - 1
Select Case shName
Case "Sheet1"
tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j)
Case "Sheet2"
tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j)
Case "Sheet3"
tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j)
Case Else
tStr = tStr & Rng(i, j)
End Select
Next j
With Rng(i, sCol)
.Value = tStr
nlen = 0
For j = 1 To sCol - 1
nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" Or shName = "Sheet4") And j = 2, 0, 1)
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name
Next j
End With
Next i
End With
End Sub
bị lỗi ko chạy dc anh ạ .Thêm 4 dòng lệnh
i = .Cells(65500, sCol).End(xlUp).Row
If i > 1 Then .Range("E2:E" & i).ClearContents
i = .Range("A65500").End(xlUp).Row
If i < 2 Then Exit Sub
Mã:Sub Strformats(ByVal shName As String) Dim Rng As Range, tStr As String Dim i As Long, j As Long, sCol As Long, nlen As Long With Sheets(shName) sCol = .Range("A1").End(xlToRight).Column i = .Cells(65500, sCol).End(xlUp).Row If i > 1 Then .Range("E2:E" & i).ClearContents i = .Range("A65500").End(xlUp).Row If i < 2 Then Exit Sub Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row) For i = 1 To Rng.Rows.Count tStr = Rng(i, 1).Value For j = 2 To sCol - 1 Select Case shName Case "Sheet1" tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j) Case "Sheet2" tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j) Case "Sheet3" tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j) Case Else tStr = tStr & Rng(i, j) End Select Next j With Rng(i, sCol) .Value = tStr nlen = 0 For j = 1 To sCol - 1 nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" Or shName = "Sheet4") And j = 2, 0, 1) .Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color .Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size .Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold .Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic .Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name Next j End With Next i End With End Sub
Xem filebị lỗi ko chạy dc anh ạ .
Mình bị lỗi lầm làm sao? Chụp cái hình lỗi, chép nội dung lỗi, lỗi tại dòng nào? Đã làm gì mà kêu lỗi?bị lỗi ko chạy dc anh ạ .
đã ok rùi , em cảm ơn anh nhiều ạ !Xem file
Không có Sheet5anh ơi ! giúp dùm em thêm 1 sheet5 nữa với ạ,
cũng nội dung đó, A nối với B nối với C
em cảm ơn anh ạ !
dạ em mới sữa bài up lại file vd3 (2).xlsb có thêm sheet5 vào rùi anhKhông có Sheet5
dạ file em up kèm ở đây anh nhéKhông có Sheet5
dạ em mới sữa bài up lại file vd3 (2).xlsb có thêm sheet5 vào rùi anh
nhờ anh xem giúp e
dạ file em up kèm ở đây anh nhé
cảm ơn anh nhiều ạ !
Sub Strformats(ByVal shName As String)
Dim Rng As Range, tStr As String
Dim i As Long, j As Long, sCol As Long, nlen As Long
With Sheets(shName)
sCol = .Range("A1").End(xlToRight).Column
i = .Range("A65500").End(xlUp).Row
If i < 2 Then Exit Sub
Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row)
For i = 1 To Rng.Rows.Count
tStr = Rng(i, 1).Value
For j = 2 To sCol - 1
Select Case shName
Case "Sheet1"
tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j)
Case "Sheet2"
tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j)
Case "Sheet3"
tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j)
Case Else
tStr = tStr & Rng(i, j)
End Select
Next j
With Rng(i, sCol)
.Value = tStr
nlen = 0
For j = 1 To sCol - 1
nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" And j = 2) Or ((shName = "Sheet4" Or shName = "Sheet5") And j > 1), 0, 1)
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic
.Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name
Next j
End With
Next i
End With
End Sub
Sub Button2_Click()
Dim i As Long, shArr()
shArr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")
Application.ScreenUpdating = False
For i = 0 To UBound(shArr)
Call Strformats(shArr(i))
Next
Application.ScreenUpdating = True
End Sub
em chạy thử thì thấy là A nối B, kết quả ở CMã:Sub Strformats(ByVal shName As String) Dim Rng As Range, tStr As String Dim i As Long, j As Long, sCol As Long, nlen As Long With Sheets(shName) sCol = .Range("A1").End(xlToRight).Column i = .Range("A65500").End(xlUp).Row If i < 2 Then Exit Sub Set Rng = .Range("A2:A" & .Range("A65500").End(xlUp).Row) For i = 1 To Rng.Rows.Count tStr = Rng(i, 1).Value For j = 2 To sCol - 1 Select Case shName Case "Sheet1" tStr = tStr & IIf(j = 4, " ", ChrW(10)) & Rng(i, j) Case "Sheet2" tStr = tStr & IIf(j = 2, "", IIf(j = 3, ChrW(10), " ")) & Rng(i, j) Case "Sheet3" tStr = tStr & IIf(j = 2, ChrW(10), " ") & Rng(i, j) Case Else tStr = tStr & Rng(i, j) End Select Next j With Rng(i, sCol) .Value = tStr nlen = 0 For j = 1 To sCol - 1 nlen = nlen + Len(Rng(i, j)) + IIf((shName = "Sheet2" And j = 2) Or ((shName = "Sheet4" Or shName = "Sheet5") And j > 1), 0, 1) .Characters(nlen - Len(Rng(i, j)), nlen).Font.Color = Rng(i, j).Font.Color .Characters(nlen - Len(Rng(i, j)), nlen).Font.Size = Rng(i, j).Font.Size .Characters(nlen - Len(Rng(i, j)), nlen).Font.Bold = Rng(i, j).Font.Bold .Characters(nlen - Len(Rng(i, j)), nlen).Font.Italic = Rng(i, j).Font.Italic .Characters(nlen - Len(Rng(i, j)), nlen).Font.Name = Rng(i, j).Font.Name Next j End With Next i End With End Sub Sub Button2_Click() Dim i As Long, shArr() shArr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5") Application.ScreenUpdating = False For i = 0 To UBound(shArr) Call Strformats(shArr(i)) Next Application.ScreenUpdating = True End Sub
Xem Sheet5em chạy thử thì thấy là A nối B, kết quả ở C
trong file vd4 em cần: A nối B nối C, kết quả ở C ạ
anh sửa code lại dùm em với ạ
cảm ơn anh nhiều !
dạ tại em ko nhập tiêu đề và đầu cột nên nó chạy sai, em nhập vào thì chạy ok rùi,Xem Sheet5