toangiaphat
Thành viên hoạt động



- Tham gia
- 6/5/09
- Bài viết
- 136
- Được thích
- 3
Bạn bấm vào button 1 bên sheet 2
bạn trẻ này mất căn bản về ạt van phiu tơ rồi , hi hi![]()
Tôi thì thấy ngược lại...đó...Thấy các bạn cứ pờ rồ phét xì ồ kakaka![]()
Anh nói rõ hơn được không ...
ủa sao cần phải có tới 2 cột [Result] làm điều kiện vậy bạn ? lỡ danh sách giá trị cột [Result] có 100 cái thì bạn cần 100 cột ư ?
Nếu tận dụng Advance Filter thì bạn dùng code này.Bạn sữa lại cho sheet 2 tự động update khi sheet1 có phát sinh nhé.
Mình tạo thêm cột Result, để bạn hiểu thôi. Thật ra cột đó sẽ xóa đi.
Cám ơn
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lr As Integer
If Target.Column = 4 Then
With Sheets("Sheet2")
.Range("A1:D6500").Clear
.Range("I1").Value = "RESULTS "
.Range("I2").Value = "Y"
.Range("I3").Value = "N"
lr = Sheets("Sheet1").Range("D" & Rows.Count).End(3).Row
Sheet1.Range("A1:D" & lr).AdvancedFilter 2, .Range("I1:I3"), .Range("A1")
.Range("I1:I3").Clear
End With
End If
End Sub
Làm sao cho sheet 2 nó tự chạy khi mình nhập liệu ở sheet 1 vậy BạnNếu tận dụng Advance Filter thì bạn dùng code này.
Mã:End Sub
Nếu tận dụng Advance Filter thì bạn dùng code này.
Mã:Private Sub Worksheet_Change(ByVal Target As Range) Dim lr As Integer If Target.Column = 4 Then With Sheets("Sheet2") .Range("A1:D6500").Clear .Range("I1").Value = "RESULTS " .Range("I2").Value = "Y" .Range("I3").Value = "N" lr = Sheets("Sheet1").Range("D" & Rows.Count).End(3).Row Sheet1.Range("A1:D" & lr).AdvancedFilter 2, .Range("I1:I3"), .Range("A1") .Range("I1:I3").Clear End With End If End Sub
Thế thì code này vậyCó phát sinh lỗi bạn ơi!
1/ Tại Sheet 1 nhập liệu nó bị lỗi con trỏ chọn cell năm ở nhiều nơi. (bạn thử nhập liệu nhé)
2/ Nếu Cột Result Mình ko nhập gì hết thì VBA báo lỗi.
3/ Tiêu đề của sheet 2 mình để cố định ko bị mất khi xóa dữ liệu sheet 1.
(Nếu bạn có cách khác ko dùng Advance Filter cũng được)
Cám ơn
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, j, k, lr As Integer, arr
If Target.Column = 4 Then
lr = Sheets("Sheet1").Range("D" & Rows.Count).End(3).Row
ReDim arr(1 To lr, 1 To 4)
Sheets("Sheet2").Range("A2:D6500").Clear
If lr > 1 Then
For i = 2 To lr
If Cells(i, 4) = "Y" Or Cells(i, 4) = "N" Then
k = k + 1
For j = 1 To 4
arr(k, j) = Cells(i, j)
Next
End If
Next
if k > 0 then Sheets("Sheet2").Range("A2").Resize(k, 4) = arr
End If
End If
End Sub
Bạn giúp mình file này nhé. Khi sheet Result cột Q là "Y" hoặc "N" thì tự động sheet Phone sẽ liệt kê dữ liệu tương ứngThế thì code này vậy
[/code]
Bạn muốn bê nguyên từ sheet Result sang Phone hay chỉ cần vài cột bạn viết chữ bên PHONE?Bạn giúp mình file này nhé. Khi sheet Result cột Q là "Y" hoặc "N" thì tự động sheet Phone sẽ liệt kê dữ liệu tương ứng
Cám ơn
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, j, k, lr As Integer, arr
If Target.Column = 17 Then
lr = Sheets("RESULT").Range("E" & Rows.Count).End(3).Row
ReDim arr(1 To lr, 1 To 27)
Sheets("PHONE").Range("A2:D6500").Clear
If lr > 1 Then
For i = 2 To lr
If Cells(i, 17) = "Y" Or Cells(i, 17) = "N" Then
k = k + 1
For j = 1 To 27
arr(k, j) = Cells(i, j)
Next
End If
Next
If k > 0 Then Sheets("PHONE").Range("A2").Resize(k, 27) = arr
End If
End If
End Sub
Bạn muốn bê nguyên từ sheet Result sang Phone hay chỉ cần vài cột bạn viết chữ bên PHONE?
Code bê nguyên
Mã:Private Sub Worksheet_Change(ByVal Target As Range) Dim i, j, k, lr As Integer, arr If Target.Column = 17 Then lr = Sheets("RESULT").Range("E" & Rows.Count).End(3).Row ReDim arr(1 To lr, 1 To 27) Sheets("PHONE").Range("A2:D6500").Clear If lr > 1 Then For i = 2 To lr If Cells(i, 17) = "Y" Or Cells(i, 17) = "N" Then k = k +
Mình chỉ cần vài cột như sheet Phone, vì các cột còn lại mình sẽ làm công thức.
Bạn ơi! code trên chỉ chạy không ổn định, Khi mình xóa "Y" or "N" rồi sheet Phone vẫn còn. Và bạn sữ giúp mình Sheet Phone chạy từ dòng E3 nhé
Cám ơn!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, j, k, lr As Integer, arr
If Target.Column = 17 Then
lr = Sheets("RESULT").Range("E" & Rows.Count).End(3).Row
ReDim arr(1 To lr, 1 To 27)
Sheets("PHONE").Range("D3:G6500").Clear
If lr > 1 Then
For i = 2 To lr
If Cells(i, 17) = "Y" Or Cells(i, 17) = "N" Then
k = k + 1
For j = 5 To 8
arr(k, j - 4) = Cells(i, j)
Next
End If
Next
If k > 0 Then Sheets("PHONE").Range("D3").Resize(k, 27) = arr
End If
End If
End Sub
mình nhập công thức vào các cột lân cận. Khi sheet phone update dữ liệu thì mất công thưc.code này vậy
Mã:private sub worksheet_change(byval target as range) dim i, j, k, lr as integer, arr if target.column = 17 then lr = sheets("result").range("e" & rows.count).end(3).row redim arr(1 to lr, 1 to 27) sheets("phone").range("d3:g6500").clear if lr > 1 then for i = 2 to lr if cells(i, 17) = "y" or cells(i, 17) = "n" then k = k + 1 for j = 5 to 8 arr(k, j - 4) = cells(i, j) next end if next if k > 0 then sheets("phone").range("d3").resize(k, 27) = arr end if end if end sub