alibaba2209
Thành viên thường trực




- Tham gia
- 4/12/10
- Bài viết
- 283
- Được thích
- 13
anh giải thích dùm vba ở sheep 2 và mở rộng vùng bảng để thay đổi bảng biểu
ở sheep - TKThep >> ô hàng kiểu thanh đánh loại thép sẽ nhẩy tự động coppy từ bên sheep - ThuVien sang
Bạn thay toàn bộ code trên bằng code sauanh có thể diễn giải chi tiết dùm em được không:
'By Luu Trung Kien
'Date 4/2010
'HAM TIM KIEM VI TRI CUA KIEU THEP BEN SHEET THU VIEN
'****************************************************************************************************
Function FIND_INDEX_KieuThep(ByVal FindKT As String) As Long
Const Start_Index_Data = 5
Dim Rng As Range
If Trim(FindKT) <> "" Then
With Sheet1.Range("C" & Start_Index_Data & ":C" & Sheet1.UsedRange.Rows.Count)
Set Rng = .Find(what:=FindKT, _
after:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
lookat:=xlWhole, _
searchorder:=xlByRows, _
searchdirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FIND_INDEX_KieuThep = Rng.Row
Else
FIND_INDEX_KieuThep = 0
End If
End With
End If
End Function
'THU TUC COPY TU SHEET THU VIEN SANG BANG THONG KE THEP
'****************************************************************************************************
Private Sub Worksheet_Change(ByVal Target As Range)
Const start_index = 7
Dim Row_Index As Long
Dim Row_Data As Long
Dim Row_Height As Long
Dim j As Long
If InStr(Target.Address, "$C$") > 0 Then 'Vi tri cua Cell tai cot C
If Target.Count <> 1 Then Exit Sub 'Neu chon lon hon thi bo qua
Row_Data = FIND_INDEX_KieuThep(Range("C" & Target.Row))
If Range("C" & Target.Row) <> "" And Row_Data > 0 Then
Row_Index = Target.Row
Row_Height = Sheet1.Range("D" & Row_Data).RowHeight
Sheet2.Range("D" & Row_Index).RowHeight = Row_Height
Sheet1.Activate
Sheet1.Range("D" & Row_Data & ":R" & Row_Data).Select
Application.CutCopyMode = False
Selection.Copy
Sheet2.Select
Sheet2.Range("D" & Row_Index).Select
ActiveSheet.Paste
Sheet2.Range("C" & Row_Index + 1).Select
Else
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 3 Then _
Sheets("ThuVien").[C:R].Rows(WorksheetFunction.Match(Target, Sheets("ThuVien").[C:C], 0)).Copy Target
End Sub
anh giải thích chi tiết code anh vừa viết cho em với anh nginh
cho em hỏi tý! sao em coppy code mới này vào thoát ra nó lại ko lưu nhỉ
Số liệu thì nhảy theo được nhưng hình vẽ thì ... chết đứnglàm sao để cho khi thay đổi dữ liệu bên Thuvien - sheet bên kia sẽ nhẩy theo anh nhỉ
Private Sub Worksheet_Change(ByVal Target As Range) : Thủ tục dành riêng (Private Sub) cho Worksheet (không chạy trên các sheet khác) khi thay đổi (Change) giá trị (ByVal Target) của một vùng (Range) trong WorksheetPrivate Sub Worksheet_Change(ByVal Target As Range)
On [COLOR=#009900 !important]Error[/COLOR] Resume Next
If Target.Column = 3 Then _
[COLOR=#009900 !important]Sheets[/COLOR]("ThuVien").[C:R].Rows(WorksheetFunction.[COLOR=#009900 !important]Match[/COLOR](Target, Sheets("ThuVien").[C:C], 0)).Copy Target
End Sub
anh giải thích cặn kẽ từ trên xuống của code cho em với.. em mới nên chưa biết >> như "Private Sub Worksheet_Change(ByVal Target As Range)" nghĩa là gì