Thêm điều kiện cho code (1 người xem)

  • Thread starter Thread starter lhthai
  • Ngày gửi Ngày gửi

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

lhthai

Thành viên thường trực
Tham gia
1/9/07
Bài viết
309
Được thích
27
Chào các Anh
Hiện tại muốn thêm điều kiện vào code như sau
Nếu Cột D của sheet Change đã có giá trị thì giữ nguyên khi dán giữ liệu mới
vào sheet Data thì cập nhật tiếp.
Mã:
[COLOR=#0000cd]Private Sub CommandButton2_Click()[/COLOR]
[COLOR=#0000cd]Dim DK(), KQ()[/COLOR]
[COLOR=#0000cd]Dim i As Long, Str As Range, j As Byte[/COLOR]
[COLOR=#0000cd]    Application.ScreenUpdating = False[/COLOR]
[COLOR=#0000cd]    For j = 1 To 7 Step 22[/COLOR]
[COLOR=#0000cd]        With Sheet3[/COLOR]
[COLOR=#0000cd]            DK = .Range(.Cells(3, j), .Cells(65000, j).End(xlUp)).Value[/COLOR]
[COLOR=#0000cd]        End With[/COLOR]
[COLOR=#0000cd]        ReDim KQ(1 To UBound(DK), 1 To 1)[/COLOR]
[COLOR=#0000cd]        For i = 1 To UBound(DK)[/COLOR]
[COLOR=#0000cd]            Set Str = Sheet6.[A:A].Find(DK(i, 1), , , xlWhole)[/COLOR]
[COLOR=#0000cd]            If Not Str Is Nothing And DK(i, 1) <> vbNullString Then[/COLOR]
[COLOR=#0000cd]                KQ(i, 1) = Str.Offset(, 3)[/COLOR]
[COLOR=#0000cd]            End If[/COLOR]
[COLOR=#0000cd]        Next[/COLOR]
[COLOR=#0000cd]        Sheet3.Cells(3, j + 3).Resize(i - 1, 1) = KQ[/COLOR]
[COLOR=#0000cd]        Set Str = Nothing[/COLOR]
[COLOR=#0000cd]    Next j[/COLOR]
[COLOR=#0000cd]End Sub[/COLOR]
 
Bài này có cách nào giải không, anh nào biết chỉ cho mình hướng để tìm hiểu thêm.
 
Upvote 0
Bài này có cách nào giải không, anh nào biết chỉ cho mình hướng để tìm hiểu thêm.

Không phải là không có cách giải đâu bạn, chỉ là không hiểu bạn muốn cái gì. Với lời giải thích quá sơ sài của bạn mình ngồi hình dung gần nữa tiếng đồng hồ mà thật sự bó tay.

Bạn chỉ cần giải thích cặn kẽ, rõ ràng bạn muốn cái gì từ đâu ra, đc tính toán ra sao... và có kết quả (làm bằng tay) làm ví dụ, chắc chắn sẽ có lời giải cho bạn.

Chúc bạn may mắn. Thân
 
Upvote 0
Không phải là không có cách giải đâu bạn, chỉ là không hiểu bạn muốn cái gì. Với lời giải thích quá sơ sài của bạn mình ngồi hình dung gần nữa tiếng đồng hồ mà thật sự bó tay.

Bạn chỉ cần giải thích cặn kẽ, rõ ràng bạn muốn cái gì từ đâu ra, đc tính toán ra sao... và có kết quả (làm bằng tay) làm ví dụ, chắc chắn sẽ có lời giải cho bạn.

Chúc bạn may mắn. Thân
Mình muốn dò tìm lấy kết quả từ sheet data qua sheet change (tương tự như hàm vlookup vậy đó) nhưng nếu cột D đã có giá trị rồi thì bỏ qua
thực hiện tiếp dòng tiếp theo.
 
Upvote 0
Chào các Anh
Hiện tại muốn thêm điều kiện vào code như sau
Nếu Cột D của sheet Change đã có giá trị thì giữ nguyên khi dán giữ liệu mới
vào sheet Data thì cập nhật tiếp.
Mã:
[COLOR=#0000cd]Private Sub CommandButton2_Click()[/COLOR]
[COLOR=#0000cd]Dim DK(), KQ()[/COLOR]
[COLOR=#0000cd]Dim i As Long, Str As Range, j As Byte[/COLOR]
[COLOR=#0000cd]    Application.ScreenUpdating = False[/COLOR]
[COLOR=#0000cd]    For j = 1 To 7 Step 22[/COLOR]
[COLOR=#0000cd]        With Sheet3[/COLOR]
[COLOR=#0000cd]            DK = .Range(.Cells(3, j), .Cells(65000, j).End(xlUp)).Value[/COLOR]
[COLOR=#0000cd]        End With[/COLOR]
[COLOR=#0000cd]        ReDim KQ(1 To UBound(DK), 1 To 1)[/COLOR]
[COLOR=#0000cd]        For i = 1 To UBound(DK)[/COLOR]
[COLOR=#0000cd]            Set Str = Sheet6.[A:A].Find(DK(i, 1), , , xlWhole)[/COLOR]
[COLOR=#0000cd]            If Not Str Is Nothing And DK(i, 1) <> vbNullString Then[/COLOR]
[COLOR=#0000cd]                KQ(i, 1) = Str.Offset(, 3)[/COLOR]
[COLOR=#0000cd]            End If[/COLOR]
[COLOR=#0000cd]        Next[/COLOR]
[COLOR=#0000cd]        Sheet3.Cells(3, j + 3).Resize(i - 1, 1) = KQ[/COLOR]
[COLOR=#0000cd]        Set Str = Nothing[/COLOR]
[COLOR=#0000cd]    Next j[/COLOR]
[COLOR=#0000cd]End Sub[/COLOR]

Chỉ cần dòng code này là mình đuối người rồi
For j = 1 To 7 Step 22
Thử vầy coi sao

PHP:
Private Sub CommandButton2_Click()
   Dim Arr(), i As Long, Rng As Range
   With Sheet3
      Arr = .Range("A3", .[A65536].End(3)).Resize(, 4).Formula
   End With
   For i = 1 To UBound(Arr)
      Set Rng = Sheet6.[A:A].Find(Arr(i, 1), , , xlWhole)
      If Not Rng Is Nothing Then
         If Arr(i, 4) = Empty Then
            Arr(i, 4) = Rng.Offset(, 3)
         End If
      End If
   Next
   Sheet3.[A3].Resize(i - 1, 4) = Arr
End Sub

 
Lần chỉnh sửa cuối:
Upvote 0
Đúng rồi cám ơn anh Quang Hải nhiều
 
Upvote 0

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

Back
Top Bottom