Di chuyển nhiều sheets cùng tên (1 người xem)

Người dùng đang xem chủ đề này

kobebryant

Thành viên thường trực
Tham gia
7/8/09
Bài viết
248
Được thích
28
Mình mày mò tìm được dòng code di chuyển các Sheet có tên na ná nhau này nhưng ko hiểu sao nó di chuyển luôn cả active sheet. Có cách nào bỏ qua active sheet được không. Và nếu viết code này theo dạng Do Loop được ko, từ xưa tới giờ mình chỉ biết dùng For
Mã:
Sub MoveSheets()
Dim bReplace As Boolean, sh As Worksheet
Dim bk As Workbook
bReplace = True
For Each sh In Worksheets
If sh.Name Like "*(Excel)" Then
sh.Select Replace:=bDontReplace
bReplace = False
End If
Next
ActiveWindow.SelectedSheets.Move
'ActiveWorkbook.SaveAs Filename:=bk.Path & "\" & "Today.xls"
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn nào giúp mình với. Mình bị đứng hình rồi
 
Upvote 0
Mình mày mò tìm được dòng code di chuyển các Sheet có tên na ná nhau này nhưng ko hiểu sao nó di chuyển luôn cả active sheet. Có cách nào bỏ qua active sheet được không. Và nếu viết code này theo dạng Do Loop được ko, từ xưa tới giờ mình chỉ biết dùng For

Bạn move sheet đi đâu? đích đến là đâu

tại sao có biến
bReplace dùng làm gì?
bDontReplace lại không thấy khai báo hay gán giá trị gì??

?
 
Upvote 0
Bạn move sheet đi đâu? đích đến là đâu

tại sao có biến
bReplace dùng làm gì?
bDontReplace lại không thấy khai báo hay gán giá trị gì??

?

Mình move đến 1 sheet khác, khi dùng code này thì mình move đi được cái sheet có cùng dạng tên, nhưng nó cũng move luôn active sheet. Code này mình search được nên ko biết biến đó là gì, bỏ đi thấy vẫn ko bị ảnh hưởng gì.
Còn sheet khác đặt tên sao thì mình chưa biết vì code chạy chưa như ý nên chưa soi code đặt tên sheet
 
Upvote 0
Mình move đến 1 sheet khác, ...
Sao lại move sheets --> đến 1 sheet khác là sao???-- cái này không logic


Thế thì tốt nhất bạn mô tả chi tiết rõ ràng điều , vấn đề bạn muốn giải quyết, gửi file mẫu lên đây,

Còn giờ lại đưa sửa code, mà chính người sử dụng không biết code đó làm cái gì để mô tả vấn đề mình muốn thì sao hiểu,

vậy nhé, hãy mô tả lại.
 
Lần chỉnh sửa cuối:
Upvote 0
Sao lại move sheets --> đến 1 sheet khác là sao???-- cái này không logic


Thế thì tốt nhất bạn mô tả chi tiết rõ ràng điều , vấn đề bạn muốn giải quyết, gửi file mẫu lên đây,

Còn giờ lại đưa sửa code, mà chính người sử dụng không biết code đó làm cái gì để mô tả vấn đề mình muốn thì sao hiểu,

vậy nhé, hãy mô tả lại.
Mình nhầm, move đến workbook khác. Mình bổ sung file, khi nhấn nút thì các sheet có dạng tên * (Excel) sẽ Move sang workbook khác. Và lỗi xảy ra là nó chuyển luôn active sheet
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Mình nhầm, move đến workbook khác. Mình bổ sung file, khi nhấn nút thì các sheet có dạng tên * (Excel) sẽ Move sang workbook khác. Và lỗi xảy ra là nó chuyển luôn active sheet

Vì activeSheet luôn là sheet đầu tiên đang được chọn

Code nên sửa lại như sau

PHP:
Sub MoveSheets()
    Dim Sh As Worksheet, b As Boolean
    b = True
    For Each Sh In Worksheets
        If Sh.Name Like "*(Excel)" Then
            Sh.Select Replace:=b
            b = False
        End If
    Next
    ActiveWindow.SelectedSheets.Move
End Sub
 
Upvote 0
Vì activeSheet luôn là sheet đầu tiên đang được chọn

Code nên sửa lại như sau

PHP:
Sub MoveSheets()
    Dim Sh As Worksheet, b As Boolean
    b = True
    For Each Sh In Worksheets
        If Sh.Name Like "*(Excel)" Then
            Sh.Select Replace:=b
            b = False
        End If
    Next
    ActiveWindow.SelectedSheets.Move
End Sub

Hay quá được rồi bạn. Mà cho mình hỏi tại sao phải khai báo biến Boolean và thêm cái Replace:= b mình ko hiểu lắm
 
Upvote 0
Hay quá được rồi bạn. Mà cho mình hỏi tại sao phải khai báo biến Boolean và thêm cái Replace:= b mình ko hiểu lắm

đó là cách truyền tham số Replace cho method
Sh.Select
Đọc về tham số replace sau method đó bạn sẽ hiểu
Replace

Optional

[TABLE="width: 780"]
[TR]
[TD][/TD]
[TD]Variant
[/TD]
[TD](used only with sheets). True to replace the current selection with the specified object. False to extend the current selection to include any previously selected objects and the specified object.
[/TD]
[/TR]
[/TABLE]
NẾU vẫn chưa hiểu thì hỏi tiếp
 
Upvote 0

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

Back
Top Bottom