Duyệt qua tất cả các sheet, ở từng sheet thì cho chạy "đoạn mã".Như tiêu đề mình có 1 đoạn mã, giờ muốn chạy 1 lần mà thực hiện trên tất cả các sheet thì phải làm sao? Mong mọi người hỗ trợ, xin chân thành cản ơn
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
'Nếu có Worksheet Khóa thì ràng buộc xem WS có khóa không hoặc bẫy lỗi.
'Ví dụ: WS.Range("A1").Value = 1
'gọi một thủ tục hoặc đoạn code
Next
Set WS = Nothing
Mình làm theo mà k được, sheet của mình không có mật khẩu gì hếtBạn thực hiện như sau :
PHP:Dim WS As Worksheet For Each WS In ThisWorkbook.Worksheets 'Nếu có Worksheet Khóa thì ràng buộc xem WS có khóa không hoặc bẫy lỗi. 'Ví dụ: WS.Range("A1").Value = 1 'gọi một thủ tục hoặc đoạn code Next Set WS = Nothing
Đưa đoạn code hay file giả lập lên; Bâng quơ vậy thì sau giải quyết được.Mình làm theo mà k được, sheet của mình không có mật khẩu gì hết
Mfile của mình gồm có 30 sheet giống nhau, minh dùng chức năng record làm trên 1 sheet, nhưng không biết chèn thêm đoạn lệnh gì để nó tự thực hiện trên 30 sheet còn lại, mình làm tận hơn 500 file như vậy, các bác có gì giúp e, file để trên máy công ty nên giờ k úp được, bác thông cảmĐưa đoạn code hay file giả lập lên; Bâng quơ vậy thì sau giải quyết được.
Vậy thì phải chờ khi bạn có file.Mfile của mình gồm có 30 sheet giống nhau, minh dùng chức năng record làm trên 1 sheet, nhưng không biết chèn thêm đoạn lệnh gì để nó tự thực hiện trên 30 sheet còn lại, mình làm tận hơn 500 file như vậy, các bác có gì giúp e, file để trên máy công ty nên giờ k úp được, bác thông cảm
Thank bác, chút em thử, là phần của em thôi ạ, có đến 10 người làm giống emĐọc từ bài #1 đã nghi là code chạy trên ActiveSheet rồi mà.
Sub ChayMoiSheets()
Dim curName As String
Dim sh As WorkSheet
curName = ActiveSheet.Name ' ghi lai ten sheet hien hanh
For Each sh In WorkSheets
sh.Activate
nhét mã cần chạy hoặc call cái sub ấy ở đây
Next sh
WorkSheets(curName).Activate ' tra lai hien hanh
End Sub
Mà sao diễn đàn này quy tụ toàn dân xài hàng khủng nhỉ.
30 sheets * 500 files = 15000 bảng tính (giả sử mỗi sheet chỉ chứa 1 bảng tính)
Trình độ quản lý 15000 bảng tính là trình độ bậc thầy của tôi.
Mình làm k đc, nó báo lỗi, mình gửi kèm file bạn kiểm tra hộĐọc từ bài #1 đã nghi là code chạy trên ActiveSheet rồi mà.
Sub ChayMoiSheets()
Dim curName As String
Dim sh As WorkSheet
curName = ActiveSheet.Name ' ghi lai ten sheet hien hanh
For Each sh In WorkSheets
sh.Activate
nhét mã cần chạy hoặc call cái sub ấy ở đây
Next sh
WorkSheets(curName).Activate ' tra lai hien hanh
End Sub
Mà sao diễn đàn này quy tụ toàn dân xài hàng khủng nhỉ.
30 sheets * 500 files = 15000 bảng tính (giả sử mỗi sheet chỉ chứa 1 bảng tính)
Trình độ quản lý 15000 bảng tính là trình độ bậc thầy của tôi.
E có gửi file ở trên đó, có giờ bác giúp emVậy thì phải chờ khi bạn có file.
30 sheet chừa lại 3 sheet, dữ liệu 10000 dòng chừa lại khoảng 100 dòng.
Thử sửa code lại thế này xem sao.Mình làm k đc, nó báo lỗi, mình gửi kèm file bạn kiểm tra hộ
Sub GPE()
Dim Sh As Worksheet, i As Long
For Each Sh In ThisWorkbook.Worksheets
With Sh
i = .Range("A1000000").End(xlUp).Row
.Range("A1:A" & i).TextToColumns Destination:=.Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(8, 2), Array(13, 2), Array(21, 2), Array(27, 2), _
Array(31, 2), Array(34, 2), Array(37, 2), Array(39, 2), Array(44, 2), Array(48, 2), Array( _
58, 2), Array(68, 2), Array(72, 2), Array(82, 2), Array(105, 2), Array(110, 2), Array(115, 2 _
), Array(120, 2), Array(125, 2), Array(130, 2), Array(135, 2), Array(140, 2), Array(145, 2) _
, Array(150, 2), Array(155, 2), Array(160, 2), Array(172, 2), Array(184, 2), Array(194, 2), _
Array(216, 2), Array(250, 2), Array(253, 2), Array(259, 2), Array(265, 2)), _
TrailingMinusNumbers:=True
.Range("M1:M" & i).Delete Shift:=xlToLeft
.Range("N1:N" & i).NumberFormat = "General"
.Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Rows("1:1").AutoFilter
End With
Next Sh
End Sub
Báo lỗi rồi bạn ơi, bạn thử chạy giúp mình xem có bị báo lỗi kThử sửa code lại thế này xem sao.
Mã:Sub GPE() Dim Sh As Worksheet, i As Long For Each Sh In ThisWorkbook.Worksheets With Sh i = .Range("A1000000").End(xlUp).Row .Range("A1:A" & i).TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 2), Array(8, 2), Array(13, 2), Array(21, 2), Array(27, 2), _ Array(31, 2), Array(34, 2), Array(37, 2), Array(39, 2), Array(44, 2), Array(48, 2), Array( _ 58, 2), Array(68, 2), Array(72, 2), Array(82, 2), Array(105, 2), Array(110, 2), Array(115, 2 _ ), Array(120, 2), Array(125, 2), Array(130, 2), Array(135, 2), Array(140, 2), Array(145, 2) _ , Array(150, 2), Array(155, 2), Array(160, 2), Array(172, 2), Array(184, 2), Array(194, 2), _ Array(216, 2), Array(250, 2), Array(253, 2), Array(259, 2), Array(265, 2)), _ TrailingMinusNumbers:=True .Range("M1:M" & i).Delete Shift:=xlToLeft .Range("N1:N" & i).NumberFormat = "General" .Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove .Rows("1:1").AutoFilter End With Next Sh End Sub
Thank bác, chút em thử, là phần của em thôi ạ, có đến 10 người làm giống em
Tôi không phải lứa tuổi chát chiếc. Tôi từ chối không giao thiệp với ngôn ngữ này.Mình làm k đc, nó báo lỗi, mình gửi kèm file bạn kiểm tra hộ
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2