Lỗi <Selection is too large>cùng 1 số liệu,1 file bị lỗi,1 file không bị lỗi? tại sao?
Mình có cùng một số liệu lớn hơn 2000 dòng, khi thực hiện lện copy từ hàng 6 xuống đến hết số liệu
1. file copy không bị lỗi (copy 2000 dong ko bi loi.xls)
[GPECODE=vb]Private Sub copy_solieu() '-- Cap nhat noi luc P, M, V moi
r = 6 '--Hang chua cong thuc
c = 146 '--Cot cuoi cung cua vung cong thuc
rowend = Rows.Count
Sheets("Steel").Select '--Qua sheet Steel
eRow = Cells(rowend, "A").End(xlUp).Row '--Hang co so lieu duoi cung
'--Copy cong thuc o hang 6 tu cot J den cot cuoi cung xuong den het bang
Range(Cells(r, "J"), Cells(r, c)).Copy Destination:=Range(Cells(r + 1, "J"), Cells(eRow, c))
MsgBox "copy thanh cong", vbInformation
End Sub
[/GPECODE]
2. file copy bị lỗi <Selection is too large> (copy 2000 dong bi loi - qua lon ko chay duoc vba)
Do trong chương trình có sử dụng lâp đi lập lại một vài biến nên mình sử dụng sub định nghĩa biến riêng
[GPECODE=vb]
Private Sub s_tao_biet_dung_chung() '--khi sua file, chi can sua lai cac bien nay
Dim a
'--ten cac sheets
pp_ten_sheet_tinhtoan = "TinhToan"
pp_ten_sheet_thuyetminh = "ThuyetMinh"
pp_ten_sheet_etab_tinh = "Etab_Tinh"
pp_row_congthuc = 6 '--hang chua cong thuc
'--tu dong lay so hang cuoi cung cua excel 2003, hoac 2010
pp_row_end_excel = Rows.Count
pp_row_end_etab_tinh = Sheets(pp_ten_sheet_etab_tinh).Cells(pp_row_end_excel, 1).End(xlUp).Row '--Hang co so lieu duoi cung
pp_row_end_tinhtoan = pp_row_end_etab_tinh + pp_row_congthuc - 1 '--Hang co so lieu duoi cung
pp_col_start_tinhtoan = 1 '--cot tinh toan
pp_col_end_tinhtoan = 152
End Sub
[/GPECODE]
và đây là code copy số liệu bị lỗi
[GPECODE=vb]
Private Sub copy_bi_loi()
Dim n As Integer '--so hang cua bang thuyet minh
Dim i As Long '--so hang cua bang thich toan
Run "dinh_nghia.s_tao_biet_dung_chung"
'--Copy cong thuc o hang 6 tu cot K den cot cuoi cung xuong den het bang tinh toan
Sheets(pp_ten_sheet_tinhtoan).Select
Range(Cells(pp_row_congthuc, "K"), Cells(pp_row_congthuc, pp_col_end_tinhtoan)).Copy Destination:=Range(Cells(pp_row_congthuc + 1, "K"), Cells(pp_row_end_tinhtoan, pp_col_end_tinhtoan))
End Sub
[/GPECODE]
Không biết vì sao cùng 1 số liệu như nhau mà 2 code, 1 cái lại copy được, 1 cái lại báo lỗi? mong các anh chị giúp đở?
Mình có cùng một số liệu lớn hơn 2000 dòng, khi thực hiện lện copy từ hàng 6 xuống đến hết số liệu
1. file copy không bị lỗi (copy 2000 dong ko bi loi.xls)
[GPECODE=vb]Private Sub copy_solieu() '-- Cap nhat noi luc P, M, V moi
r = 6 '--Hang chua cong thuc
c = 146 '--Cot cuoi cung cua vung cong thuc
rowend = Rows.Count
Sheets("Steel").Select '--Qua sheet Steel
eRow = Cells(rowend, "A").End(xlUp).Row '--Hang co so lieu duoi cung
'--Copy cong thuc o hang 6 tu cot J den cot cuoi cung xuong den het bang
Range(Cells(r, "J"), Cells(r, c)).Copy Destination:=Range(Cells(r + 1, "J"), Cells(eRow, c))
MsgBox "copy thanh cong", vbInformation
End Sub
[/GPECODE]
2. file copy bị lỗi <Selection is too large> (copy 2000 dong bi loi - qua lon ko chay duoc vba)
Do trong chương trình có sử dụng lâp đi lập lại một vài biến nên mình sử dụng sub định nghĩa biến riêng
[GPECODE=vb]
Private Sub s_tao_biet_dung_chung() '--khi sua file, chi can sua lai cac bien nay
Dim a
'--ten cac sheets
pp_ten_sheet_tinhtoan = "TinhToan"
pp_ten_sheet_thuyetminh = "ThuyetMinh"
pp_ten_sheet_etab_tinh = "Etab_Tinh"
pp_row_congthuc = 6 '--hang chua cong thuc
'--tu dong lay so hang cuoi cung cua excel 2003, hoac 2010
pp_row_end_excel = Rows.Count
pp_row_end_etab_tinh = Sheets(pp_ten_sheet_etab_tinh).Cells(pp_row_end_excel, 1).End(xlUp).Row '--Hang co so lieu duoi cung
pp_row_end_tinhtoan = pp_row_end_etab_tinh + pp_row_congthuc - 1 '--Hang co so lieu duoi cung
pp_col_start_tinhtoan = 1 '--cot tinh toan
pp_col_end_tinhtoan = 152
End Sub
[/GPECODE]
và đây là code copy số liệu bị lỗi
[GPECODE=vb]
Private Sub copy_bi_loi()
Dim n As Integer '--so hang cua bang thuyet minh
Dim i As Long '--so hang cua bang thich toan
Run "dinh_nghia.s_tao_biet_dung_chung"
'--Copy cong thuc o hang 6 tu cot K den cot cuoi cung xuong den het bang tinh toan
Sheets(pp_ten_sheet_tinhtoan).Select
Range(Cells(pp_row_congthuc, "K"), Cells(pp_row_congthuc, pp_col_end_tinhtoan)).Copy Destination:=Range(Cells(pp_row_congthuc + 1, "K"), Cells(pp_row_end_tinhtoan, pp_col_end_tinhtoan))
End Sub
[/GPECODE]
Không biết vì sao cùng 1 số liệu như nhau mà 2 code, 1 cái lại copy được, 1 cái lại báo lỗi? mong các anh chị giúp đở?