Tạo macro copy sheet

Liên hệ QC

diemvuongvathuongde

Thành viên chính thức
Tham gia
5/11/07
Bài viết
75
Được thích
2
Chào các bác.
Em dùng lệnh
Mã:
ActiveSheet.Copy
để copy sheet ra workbook khác. Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
 
Chào các bác.
Em dùng lệnh
Mã:
ActiveSheet.Copy
để copy sheet ra workbook khác. Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
Bạn dùng lệnh này:
PHP:
 Cells.Value = Cells.Value
 
Upvote 0
Tôi thấy vẫn bình thường, có đầy đủ công thức và code.
Bạn thử gửi file của bạn lên xem nào.
 
Upvote 0
Không biết tôi hiểu nhầm hay bạn hiểu nhầm. Rõ ràng người ta nói là ở Sheet mới không có công thức và code cơ mà.
...nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
 
Upvote 0
Mời các bác vào phân xử giùm.

Không biết tôi hiểu nhầm hay bạn hiểu nhầm. Rõ ràng người ta nói là ở Sheet mới không có công thức và code cơ mà.
Cái này chắc phải chờ tác giả lên tiếng mới biết thôi. Bạn xem đây:
Chào các bác.
Em dùng lệnh Code:
ActiveSheet.Copy
để copy sheet ra workbook khác. Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
Một chữ thôi sẽ đổi nghĩa cả câu.
Mời các bác cho ý kiến. Tiếng Việt quả là phong phú --=0
 
Upvote 0
Chào các bác.
Em dùng lệnh
Mã:
ActiveSheet.Copy
để copy sheet ra workbook khác. Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
Thì cứ ghi lại 1 macro và edit đôi chút. Không biết có đúng không.
PHP:
Sub CopyShtoWB()
With Application
  .DisplayAlerts = False:  .ScreenUpdating = False
End With

    Sheets("Sheet1").Copy
    Cells.Select
    With Selection
      .Copy
      .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Documents and Settings\Administrator\My Documents\789.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    ActiveWindow.Close
With Application
  .CutCopyMode = False
  .DisplayAlerts = True::  .ScreenUpdating = True
End With
End Sub
 
Upvote 0
Chào các bác.
Em dùng lệnh
Mã:
ActiveSheet.Copy
để copy sheet ra workbook khác. Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
Tôi có viết 1 bài tại đây:
http://www.giaiphapexcel.com/forum/showpost.php?p=158885&postcount=13
Code này sẽ lưu file hiện hành thành 1 file mới không chứa code VBA
Việc còn lại chỉ là copy\PasteSpecial\Value thôi mà.... Còn không, tôi nghĩ sẽ là:
PHP:
 With Activesheet.UsedRange
     .Value = .Value
  End With
Đại khái thế (chưa test)
 
Upvote 0
Ơ lạ nhỉ, sao các bạn lại hiểu khác tôi thế.
Rõ ràng là người ta đang thắc mắc khi copy xong thì trong sheet của workbook mới không có công thức và code mà.
Các bạn thử phân tích cách hiểu của các bạn xem thế nào. Bình thường thì sẽ có sự hiểu lầm giữa ngôn ngữ các vùng (Nam, Trung, Bắc) nhưng ở đây toàn những từ phổ thông thôi. Chẳng lẽ tôi bị ẩm IC à?
 
Upvote 0
Ơ lạ nhỉ, sao các bạn lại hiểu khác tôi thế.
Rõ ràng là người ta đang thắc mắc khi copy xong thì trong sheet của workbook mới không có công thức và code mà.
Các bạn thử phân tích cách hiểu của các bạn xem thế nào. Bình thường thì sẽ có sự hiểu lầm giữa ngôn ngữ các vùng (Nam, Trung, Bắc) nhưng ở đây toàn những từ phổ thông thôi. Chẳng lẽ tôi bị ẩm IC à?
Uh... có thể hiểu theo 2 cách... dựa vào câu nói này của tác giả:
Nay em muốn làm như thế nhưng sheet ở workbook mới không có công thức (chỉ có định dạng giống cũ và các ô là giá trị) và không có code trong sheet.
Các bác giúp em nhé.
1> Hiểu theo cách 1:
Nay em muốn làm như thế, nhưng làm cách nào bỏ hết các công thức và code trong Workbook mới
2> Hiểu theo cach 2:
Nay em muốn làm như thế, (và em đã làm) nhưng tại sao khi em làm xong thì ở workbook mới lại mất sạch công thưc, chỉ còn giá trị và định dạng?
-----------------
Và tôi nghĩ rằng hiểu theo cách 1 thì đúng hơn... vì lý nào copy sheet lại có thể mất công thức cơ chứ?
Nên hầu hết đều hiểu rằng: Tác giả muốn bỏ hết công thức và code ở Workbook mới
Thế đấy!
 
Lần chỉnh sửa cuối:
Upvote 0
ờ nhể, cũng là 1 cách nói, sao tôi lại không phân tích được như bạn nhỉ???
IC có vấn đề thật rồi.
 
Upvote 0
Rất cảm ơn các bác đã quan tâm.
Khi dùng lệnh ActiveSheet.Copy thì sẽ tạo ra workbook mới có chứa sheet (tạm gọi là abc) giống y chang sheet hiện hành. Nhưng abc sẽ mang theo cả công thức, link và code của sheet hiện hành. Nay em muốn làm giống cái công việc trên nhưng ở abc không có code, phần công thức và link chỉ là giá trị. Một lần nữa cảm ơn các bác nhiều.
 
Upvote 0
Rất cảm ơn các bác đã quan tâm.
Khi dùng lệnh ActiveSheet.Copy thì sẽ tạo ra workbook mới có chứa sheet (tạm gọi là abc) giống y chang sheet hiện hành. Nhưng abc sẽ mang theo cả công thức, link và code của sheet hiện hành. Nay em muốn làm giống cái công việc trên nhưng ở abc không có code, phần công thức và link chỉ là giá trị. Một lần nữa cảm ơn các bác nhiều.
Vậy thì bạn làm theo kiểu: Ctrl + A... Ctrl + C rồi PasteSpecial\Value đi là xong
Tức:
PHP:
Sub Macro1()
  ActiveSheet.Cells.Copy
  With Workbooks.Add
    .ActiveSheet.PasteSpecial 3
    .SaveAs ("Test.xls"): .Close
  End With
End Sub
Đại khái thế, bạn thử xem! Tôi bảo đảm công thức, Hyperlink hay code gì đó sẽ tiêu đời ( biến thành giá trị tất tần tận)
 
Upvote 0
Làm như trên sẽ mất định dạng (Độ rộng cột, chiều cao dòng, font...) và chỉ lấy được value
 
Upvote 0
Rất cảm ơn các bác đã quan tâm.
Khi dùng lệnh ActiveSheet.Copy thì sẽ tạo ra workbook mới có chứa sheet (tạm gọi là abc) giống y chang sheet hiện hành. Nhưng abc sẽ mang theo cả công thức, link và code của sheet hiện hành. Nay em muốn làm giống cái công việc trên nhưng ở abc không có code, phần công thức và link chỉ là giá trị. Một lần nữa cảm ơn các bác nhiều.

Với cách này phải tạo trước Sheet abc
PHP:
Sub Macro1()
  With Sheets("abc")
  ActiveSheet.[A1:Z1000].Copy Destination:=.[A1:Z1000]
  .[A1:Z1000] = .[A1:Z1000].Value
  End With
End Sub
hoặc Với cách này phải biết trước tên Sheets nguồn (vd: Data)
PHP:
Sub Macro2()
  Sheets.Add.Name = ("abc")
  With Sheets("abc")
  Sheets("Data").[A1:Z1000].Copy Destination:=.[A1:Z1000]
  .[A1:Z1000] = .[A1:Z1000].Value
  End With
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom