vova2209
Thành viên tích cực


- Tham gia
- 5/4/17
- Bài viết
- 835
- Được thích
- 112
- Giới tính
- Nam
- Nghề nghiệp
- Đường bộ
Do trong file của bạn có chứa name nên khi copy sheet nó hỏi bạn có muốn tạo name mới hay không? hay là sử dụng lại cái Name cũ, để khắc phục bạn có thể xóa name trước khi chạy code hoặc cho chạy code nhưng bỏ qua thông báo đó bằng cách dùng thử code này xem sao.Sub Macro1()
Dim ShName As String
Dim i As Long
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Activate
For i = 1 To 3
ShName = ("KL.D") & i
ws.Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = ShName
Next i
End Sub
---------------
+ Mỗi lần chạy code là nó bị như hình ảnh dưới đây! phải sử lý như nào ạ!
+ Vòng for muốn chỉ định mỗi lần chạy nó sẽ hỏi muốn copy ra bao nhiêu sheet thì làm như nào ạ: em muốn dùng Form ở khâu này!
View attachment 183946
Sub Macro1()
Dim ShName As String
Dim i As Long, NumSheet As Integer
Dim ws As Worksheet
NumSheet = Application.InputBox("Nh" & ChrW(7853) & "p s" & ChrW(7889) & " lý" & ChrW(7907) & "ng sheet c" & ChrW(7847) & "n copy.", "Nhap so!", , , , , , 1)
If NumSheet = 0 Then Exit Sub
Application.DisplayAlerts = False
Set ws = ActiveSheet
ws.Activate
For i = 1 To NumSheet
ShName = ("KL.D") & i
ws.Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = ShName
Next i
Application.DisplayAlerts = True
End Sub
ok đươc rồi anh ạ! file của em lúc copy ra bị Name rác. Code chạy êm mượt rồi. Em cảm ơn anh nhiều!Do trong file của bạn có chứa name nên khi copy sheet nó hỏi bạn có muốn tạo name mới hay không? hay là sử dụng lại cái Name cũ, để khắc phục bạn có thể xóa name trước khi chạy code hoặc cho chạy code nhưng bỏ qua thông báo đó bằng cách dùng thử code này xem sao.
Mã:Sub Macro1() Dim ShName As String Dim i As Long, NumSheet As Integer Dim ws As Worksheet NumSheet = Application.InputBox("Nh" & ChrW(7853) & "p s" & ChrW(7889) & " lý" & ChrW(7907) & "ng sheet c" & ChrW(7847) & "n copy.", "Nhap so!", , , , , , 1) If NumSheet = 0 Then Exit Sub Application.DisplayAlerts = False Set ws = ActiveSheet ws.Activate For i = 1 To NumSheet ShName = ("KL.D") & i ws.Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count) ActiveSheet.Name = ShName Next i Application.DisplayAlerts = True End Sub