Marco thay hàm if? (1 người xem)

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

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

790312

Thành viên hoạt động
Tham gia
7/4/08
Bài viết
181
Được thích
8
Nhờ các bạn viết giùm marco sau:Nếu cột A và B có giá trị thì cột C sẽ có giá trị là C và K.Thí dụ:
1. Ư. C
D. X. K
V. Z. C
S. O. K
2. H. C
7. J. K
........
Chân thành cảm ơn trước.
 
Nhờ các bạn viết giùm marco sau:Nếu cột A và B có giá trị thì cột C sẽ có giá trị là C và K.Thí dụ:
1. Ư. C
D. X. K
V. Z. C
S. O. K
2. H. C
7. J. K
........
Chân thành cảm ơn trước.
Bạn đưa file lên minh họa xem nào? mình vẫn chưa hiểu rõ ý đồ lắm.
 
Upvote 0
Nhờ các bạn viết giùm marco sau:Nếu cột A và B có giá trị thì cột C sẽ có giá trị là C và K.Thí dụ:
1. Ư. C
D. X. K
V. Z. C
S. O. K
2. H. C
7. J. K
........
Chân thành cảm ơn trước.

Không có file nên nhắm mắt tưởng tượng viết luôn, trật ráng chịu

PHP:
Sub thay_if()
Dim dl, i
Set dl = Range([a1], [k65536].End(3))
   For i = 1 To dl.Rows.Count
      If dl(i, 1) <> "" And dl(i, 2) <> "" Then
         dl(i, 3) = dl(i, 3) & dl(i, 11)
      End If
   Next
End Sub
 
Upvote 0
Không có file nên nhắm mắt tưởng tượng viết luôn, trật ráng chịu

PHP:
Sub thay_if()
Dim dl, i
Set dl = Range([a1], [k65536].End(3))
   For i = 1 To dl.Rows.Count
      If dl(i, 1) <> "" And dl(i, 2) <> "" Then
         dl(i, 3) = dl(i, 3) & dl(i, 11)
      End If
   Next
End Sub
Em đã thử đoạn code của bác mà không chạy được.E gửi file đính kèm.sheet1 là theo code của bác,sheet2 là kết quả e muốn.Thanks.
 

File đính kèm

Upvote 0
Em đã thử đoạn code của bác mà không chạy được.E gửi file đính kèm.sheet1 là theo code của bác,sheet2 là kết quả e muốn.Thanks.
Bạn quanghai đã nói rồi mà:
Không có file nên nhắm mắt tưởng tượng viết luôn, trật ráng chịu
Thử cái này xem, lấy code của quanghai, có file làm chưa chắc đã đúng ý.
PHP:
Sub thay_if()
Dim dl, i, K
Set dl = Range([a3], [b65536].End(3))
   For i = 1 To dl.Rows.Count
      If dl(i, 1) <> "" And dl(i, 2) <> "" Then
        If K = "C" Then
            K = "K"
        Else
            K = "C"
        End If
         dl(i, 3) = K
      End If
   Next
End Sub
 
Upvote 0
Bạn quanghai đã nói rồi mà:

Thử cái này xem, lấy code của quanghai, có file làm chưa chắc đã đúng ý.
PHP:
Sub thay_if()
Dim dl, i, K
Set dl = Range([a3], [b65536].End(3))
   For i = 1 To dl.Rows.Count
      If dl(i, 1) <> "" And dl(i, 2) <> "" Then
        If K = "C" Then
            K = "K"
        Else
            K = "C"
        End If
         dl(i, 3) = K
      End If
   Next
End Sub
Nếu nhiều dòng quá nó không chạy bác ạ?Ít thì nó chạy nhưng chậm lắm,bác có cách gì khắc phục giùm e với.Thanks
 

File đính kèm

Upvote 0
Nếu nhiều dòng quá nó không chạy bác ạ?Ít thì nó chạy nhưng chậm lắm,bác có cách gì khắc phục giùm e với.Thanks
Chơi kiểu gì mà "lút cán" luôn vậy "Chời".
Bạn Hải đã xài [B65536].End(3) mà bạn cho dữ liệu đến dòng 65536 luôn là tèo "gồi".
Muốn "chơi lút cán" luôn thì thử cái này coi, nhanh hay chậm không biết à nghe.
PHP:
Sub GPE()
Dim Rng(), Arr(), I As Long, Tem As String
    Rng = Sheet1.[A3:B65536].Value
ReDim Arr(1 To 65534, 1 To 1)
    For I = 1 To 65534
        If Rng(I, 1) <> "" And Rng(I, 2) <> "" Then
            If Tem = "C" Then
                Tem = "K"
            Else
                Tem = "C"
            End If
                Arr(I, 1) = Tem
        End If
    Next I
Sheet1.[C3:C65536].Value = Arr
End Sub
 
Upvote 0
Nếu nhiều dòng quá nó không chạy bác ạ?Ít thì nó chạy nhưng chậm lắm,bác có cách gì khắc phục giùm e với.Thanks
Không gởi file thật lên ráng chịu, muốn cho nhanh thì gởi đồ thiệt lên. Chơi với đồ giả chán lắm.
 
Upvote 0
Không gởi file thật lên ráng chịu, muốn cho nhanh thì gởi đồ thiệt lên. Chơi với đồ giả chán lắm.
Hai bác thông cảm,2 cột A và B của e nó thay đổi tuỳ theo dữ liệu,lúc nhiều lúc ít nên khi e thử cột A và B khoảng 700 dòng là nó chạy phải 30s mới xong.Thanks.
 
Upvote 0
Chơi kiểu gì mà "lút cán" luôn vậy "Chời".
Bạn Hải đã xài [B65536].End(3) mà bạn cho dữ liệu đến dòng 65536 luôn là tèo "gồi".
Muốn "chơi lút cán" luôn thì thử cái này coi, nhanh hay chậm không biết à nghe.
PHP:
Sub GPE()
Dim Rng(), Arr(), I As Long, Tem As String
    Rng = Sheet1.[A3:B65536].Value
ReDim Arr(1 To 65534, 1 To 1)
    For I = 1 To 65534
        If Rng(I, 1) <> "" And Rng(I, 2) <> "" Then
            If Tem = "C" Then
                Tem = "K"
            Else
                Tem = "C"
            End If
                Arr(I, 1) = Tem
        End If
    Next I
Sheet1.[C3:C65536].Value = Arr
End Sub
Chạy quá tốt bác ạ.Cho e hỏi giờ nếu muốn chỉnh lại bắt đầu từ hàng A5 thì sửa A3 thành A5 và C3 thành C5 và sửa cái gì nữa vậy bác,e sửa 2 cái trên thì nó báo lỗi.Cảm ơn bác rất nhiều.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chạy quá tốt bác ạ.Cho e hỏi giờ nếu muốn chỉnh lại bắt đầu từ hàng A5 thì sửa A3 thành A5 và C3 thành C5 và sửa cái gì nữa vậy bác,e sửa 2 cái trên thì nó báo lỗi.Cảm ơn bác rất nhiều.
Chả hiểu dữ liệu kiểu gì mà tới dòng cuối luôn

PHP:
Sub GPE()
Dim Rng(), Arr(), I As Long, Tem As String
Rng = Sheet1.[A5:B65536].Value
ReDim Arr(1 To UBound(Rng), 1 To 1)
    For I = 1 To B65536
        If Rng(I, 1) <> "" And Rng(I, 2) <> "" Then
            Tem = IIf(Tem = "Y", "N", "Y")
            Arr(I, 1) = Tem
        End If
    Next I
Sheet1.[c5].Resize(UBound(Rng)) = Arr
End Sub
 
Upvote 0
Chả hiểu dữ liệu kiểu gì mà tới dòng cuối luôn

PHP:
Sub GPE()
Dim Rng(), Arr(), I As Long, Tem As String
Rng = Sheet1.[A5:B65536].Value
ReDim Arr(1 To UBound(Rng), 1 To 1)
    For I = 1 To B65536
        If Rng(I, 1) <> "" And Rng(I, 2) <> "" Then
            Tem = IIf(Tem = "Y", "N", "Y")
            Arr(I, 1) = Tem
        End If
    Next I
Sheet1.[c5].Resize(UBound(Rng)) = Arr
End Sub
Code không chạy bác ah?
 

File đính kèm

Upvote 0


Sửa chưa hết nên chạy gì nổi

PHP:
Sub GPE()
Dim Rng(), Arr(), I As Long, Tem As String
Rng = Sheet1.[A5:B65536].Value
ReDim Arr(1 To UBound(Rng), 1 To 1)
    For I = 1 To UBound(Rng)
        If Rng(I, 1) <> "" And Rng(I, 2) <> "" Then
            Tem = IIf(Tem = "Y", "N", "Y")
            Arr(I, 1) = Tem
        End If
    Next I
Sheet1.[c5].Resize(UBound(Rng)) = Arr
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom