Giúp em dùng hàm nhưng thay đổi dữ liệu ạ (3 người xem)

  • Thread starter Thread starter lala_qn
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

dạ sheet2 ok rùi a
nhờ anh thêm code ở sheet4 với ạ
sheet4 em cần kết quả ở cột C: thay đổi dc, font chữ, màu chữ, size chữ, kiểu chữ
và: A nối với C
cảm ơn anh!
 
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 !
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
 
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
dạ anh dựa vào code anh @excel_lv1.5 viết thêm code ở sheet4 nội dung như sau ạ
sheet4 em cần kết quả ở cột C: thay đổi dc, font chữ, màu chữ, size chữ, kiểu chữ
và: A nối với B
cảm ơn anh!
 
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!
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
    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
 
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
    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 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
 
Lần chỉnh sửa cuối:
em 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
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
 
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
bị lỗi ko chạy dc anh ạ .
 
Anh để em. :p:p
----------------------
bị 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?

Mình viết thì sao cho có đầu có cuối, viết cho rõ ràng, không viết tắt, viết cho đúng chính tả nha.!!!
 
anh ơ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 ạ !
 

File đính kèm

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 ạ !
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 = .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
 
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 = .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ả ở 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 !
 
Web KT

Bài viết mới nhất

Back
Top Bottom