ditimdl
Thành viên thường trực
- Tham gia
- 11/10/06
- Bài viết
- 378
- Được thích
- 107
- Giới tính
- Nam
- Nghề nghiệp
- Pharmacist
Đoạn code thế này nhé!Mình có bảng dữ liệu: cột A, cột B nhập dữ liệu, cột C và D thì công thức
Mình muốn khi nhập dữ liệu bên cột A thì công thức cột C và D tự động kéo theo.
Các bạn giúp mình code này với.
Cảm ơn!
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column = 1 Then
Range("C" & Target.Row).Select
Selection.FillDown
Range("B" & Target.Row).Select
End If
If Target.Column = 2 Then
Range("D" & Target.Row).Select
Selection.FillDown
End If
Application.ScreenUpdating = True
End Sub
Có thể sử dụng Code sau:Cảm ơn bạn.
Nếu gọp lại thì như thế nào? Khi nhập dữ liệu vào cột A nó sẽ filldown cột C và D luôn?
Cái này đơn giản thôi mà bạn!! Cố gắng đọc code một chút là hiểu thôi!Cảm ơn bạn.
Nếu gọp lại thì như thế nào? Khi nhập dữ liệu vào cột A nó sẽ filldown cột C và D luôn?
Ai da! Leonguyenz đã bước chân vào "con đường đau khổ" rồi hé.Có thể sử dụng Code sau:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Range("A2:A1000"), Target) Is Nothing Then
Target.Offset(, 2).Resize(, 2).FillDown
End If
Application.ScreenUpdating = True
End Sub
[/gpecode]
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Range("A2:A1000"), Target) Is Nothing Then
[C2:D2].Copy Target.Offset(, 2).Resize(, 2)
End If
Application.ScreenUpdating = True
End Sub
Thay vì dùng 1 câu lệnh filldown, bạn lại muốn đẻ thêm câu lệnh copy - paste nữa sao!!chuyển filldown thành paste công thức vô luôn dc ko bác ?
Ý mình là công thức để trong code luôn không cần để công thức trên hàng đầu tiênThay vì dùng 1 câu lệnh filldown, bạn lại muốn đẻ thêm câu lệnh copy - paste nữa sao!!
Bạn thử code này xem:Ý mình là công thức để trong code luôn không cần để công thức trên hàng đầu tiên
Thay câu dùng hàm VlookUp bằng cái này gọn hơnBạn thử code này xem:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Range("A2:A1000"), Target) Is Nothing Then
Target.Offset(, 2) = Application.WorksheetFunction.VLookup(Target, Sheet2.Range("A2:B4"), 2, False)
Target.Offset(, 3).Formula = "=RC[-2]*RC[-1]"
End If
Application.ScreenUpdating = True
End Sub
[/gpecode]
Cần Value giá trị luôn không, hay để hàm như vậy?
Target(, 3) = Sheet2.[A:A].Find(Target, , , 1).Offset(, 1)
Thay câu dùng hàm VlookUp bằng cái này gọn hơn
Mã:Target(, 3) = Sheet2.[A:A].Find(Target, , , 1).Offset(, 1)
Bạn giải thích hơi khó hiểu. Khi giá trị U1>U2 thì cần Filldown cột nào?mình cũng có 1 trường hợp cần kéo công thức bằng VBA
bên dưới là file đính kèm
Khi U1>U2, thì các công thức ở cột P, Q, R sẽ kéo xuống tới hàng như giá trị của U1 (kiểu update thông tin)
Mong các Huynh giúp đỡ
khi U1>U2 thì filldown cột P, Q, R đến hàng bằng với giá trị U1Bạn giải thích hơi khó hiểu. Khi giá trị U1>U2 thì cần Filldown cột nào?
Vậy có nghĩa là các giá trị trongcột P,Q,R lúc này sẽ được thay bằng giá trị U1?khi U1>U2 thì filldown cột P, Q, R đến hàng bằng với giá trị U1
ko phải anh ơi, ví dụ giá trị U1 LÀ 3000, U2 LÀ 2197Vậy có nghĩa là các giá trị trongcột P,Q,R lúc này sẽ được thay bằng giá trị U1?