Chào các anh chị!
Hiện tại em đang gặp phải 1 vấn đề khó khăn mà chưa nghĩ ra cách giải quyết triệt để muốn nhờ các anh chị giúp em. Vấn đề của em như sau:
- Người dùng nhập 1 chuỗi ký tự (theo quy định trước) để lấy ra thông tin cần thiết
- Copy template (format, color...) từ sheet Template về sheet đích (Template Tool)
- Copy nội dung tương ứng với template này về sheet đích tại vị trí đang đặt con trỏ (Template Tool)
- Khi thay đổi nội dung của các sheet Content và Template thì ở sheet đích cũng thay đổi theo.
VD: nhập chuỗi "M 065" thì sẽ copy ở sheet Template 1 range(X, Y) tương ứng với mã M; Copy ở sheet Content nội dung tương ứng với mã 065; Paste vào sheet Template Tool các nội dung tương ứng.
Hiện tại em đang giải quyết 3 vấn đề đầu tiên nhưng mà vẫn chưa được hoàn chỉnh (có thể copy được template nhưng lại chưa copy được content) và chưa paste vào vị trí mong muốn được. Vấn đề thứ 4 thì em chưa nghĩ ra hướng giải quyết ra làm sao . Em xin gửi kèm theo code e đã viết mong anh chị giúp em.
---------------------------------------------------------------------------------
Sub Test()
Dim ins As String
Dim inty() As String
ins = Application.InputBox(Prompt:="Select template type", Title:="String Value")
If ins = " " Then Exit Sub
inty = Split(ins, " ")
If inty(0) = "m" Then
Sheets("Template").Select
Range("A1:E2").Select
Selection.Copy
Sheets("Template Tool").Select
Range("A1:E2").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveCell.Select
ActiveCell.Offset(-1).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 1, 0)
ActiveCell.Offset(-1, 1).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 2, 0)
ActiveCell.Offset(-1, 2).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 3, 0)
ActiveCell.Offset(-1, 3).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 4, 0)
End If
End Sub
----------------------------------------------------------------------------
P/S: nếu thực hiện được những việc này bằng hàm (Function) thì tốt nhất ạ vì nhỡ có bị block macro vần xài đc . Cảm ơn các anh chị.
Hiện tại em đang gặp phải 1 vấn đề khó khăn mà chưa nghĩ ra cách giải quyết triệt để muốn nhờ các anh chị giúp em. Vấn đề của em như sau:
- Người dùng nhập 1 chuỗi ký tự (theo quy định trước) để lấy ra thông tin cần thiết
- Copy template (format, color...) từ sheet Template về sheet đích (Template Tool)
- Copy nội dung tương ứng với template này về sheet đích tại vị trí đang đặt con trỏ (Template Tool)
- Khi thay đổi nội dung của các sheet Content và Template thì ở sheet đích cũng thay đổi theo.
VD: nhập chuỗi "M 065" thì sẽ copy ở sheet Template 1 range(X, Y) tương ứng với mã M; Copy ở sheet Content nội dung tương ứng với mã 065; Paste vào sheet Template Tool các nội dung tương ứng.
Hiện tại em đang giải quyết 3 vấn đề đầu tiên nhưng mà vẫn chưa được hoàn chỉnh (có thể copy được template nhưng lại chưa copy được content) và chưa paste vào vị trí mong muốn được. Vấn đề thứ 4 thì em chưa nghĩ ra hướng giải quyết ra làm sao . Em xin gửi kèm theo code e đã viết mong anh chị giúp em.
---------------------------------------------------------------------------------
Sub Test()
Dim ins As String
Dim inty() As String
ins = Application.InputBox(Prompt:="Select template type", Title:="String Value")
If ins = " " Then Exit Sub
inty = Split(ins, " ")
If inty(0) = "m" Then
Sheets("Template").Select
Range("A1:E2").Select
Selection.Copy
Sheets("Template Tool").Select
Range("A1:E2").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveCell.Select
ActiveCell.Offset(-1).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 1, 0)
ActiveCell.Offset(-1, 1).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 2, 0)
ActiveCell.Offset(-1, 2).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 3, 0)
ActiveCell.Offset(-1, 3).Value = Application.WorksheetFunction.VLookup(inty(1), Sheets("Content").Range("A1:E1"), 4, 0)
End If
End Sub
----------------------------------------------------------------------------
P/S: nếu thực hiện được những việc này bằng hàm (Function) thì tốt nhất ạ vì nhỡ có bị block macro vần xài đc . Cảm ơn các anh chị.