Nhờ tìm lỗi giúp em (nhập số liệu cho sheets)

Liên hệ QC

sangxdwaseco

Thành viên mới
Tham gia
21/9/08
Bài viết
4
Được thích
0
Private Sub nhapsolieu_Click()
Dim n As Integer

If MsgBox("Ban Muon NHAP Du Lieu MOI?", vbOKCancel, "Canh Bao!!!") = vbCancel Then
Exit Sub
End If
'
Sheets("Loc").Activate
Cells.Select
Selection.Clear


Sheets("so lieu nhap").Range("A1:X38").Copy
Sheets("Loc").Select
Range("A1").Select
ActiveSheet.Paste
'
n = 41
Do While Sheets("so lieu nhap").Cells(n + 1, "A") <> ""
n = n + 1
Loop
Sheets("so lieu nhap").Select
Range(Cells(41, 1), Cells(n, 60)).Select
Selection.Copy
Sheets("Loc").Select
Range("A42").Select
Selection.PasteSpecial Paste:=xlPasteAll


dòng lệnh này em ko biết sao lỗi hoài (Range(Cells(41, 1), Cells(n, 60)).Select), các pác giúp em với !
Thanks
 
Nếu đây là toàn bộ code của bạn thì lỗi là ở chỗ thiếu dòng End Sub ở cuối cùng. Nếu thêm End Sub thì code này chạy bình thường chứ đâu có lỗi gì đâu.
Có thể rút gọn code của bạn như sau:
PHP:
Sub nhapsolieu_Click1()
    Dim n As Integer, S1 As Worksheet, S2 As Worksheet
 
    Set S1 = Sheets("so lieu nhap")
    Set S2 = Sheets("Loc")
    If MsgBox("Ban Muon NHAP Du Lieu MOI?", vbOKCancel, "Canh Bao!!!") = vbCancel Then Exit Sub
    S2.Cells.Clear
    S1.[A1:X38].Copy S2.[A1]
    n = 41
    Do While S1.Cells(n + 1, "A") <> ""
        n = n + 1
    Loop
    S1.Range("A41:BH" & n).Copy S2.[A42]
End Sub
 
Upvote 0
Thank you ý kiến của pác.
Phần code của pác rút gọn thì ok
Nhưng phần của em thi ko dc (phần của em post lên quên dán phần End Sub), không biết là lỗi phần nào nữa. Nhờ pác NghiaPhuc check dùm em với.
 
Upvote 0
Thank you ý kiến của pác.
Phần code của pác rút gọn thì ok
Nhưng phần của em thi ko dc (phần của em post lên quên dán phần End Sub), không biết là lỗi phần nào nữa. Nhờ pác NghiaPhuc check dùm em với.
Mình đã thử code của bạn bằng cách thêm End Sub vào cuối, thấy chạy bình thường mà, có thể lỗi phát sinh do dữ liệu cụ thể của bạn. Nếu có thể thì bạn đưa file lên đi, có như vậy mới dễ kiểm tra lỗi.
 
Upvote 0
Nếu đây là toàn bộ code của bạn thì lỗi là ở chỗ thiếu dòng End Sub ở cuối cùng. Nếu thêm End Sub thì code này chạy bình thường chứ đâu có lỗi gì đâu.
Có thể rút gọn code của bạn như sau:
PHP:
Sub nhapsolieu_Click1()
    Dim n As Integer, S1 As Worksheet, S2 As Worksheet
 
    Set S1 = Sheets("so lieu nhap")
    Set S2 = Sheets("Loc")
    If MsgBox("Ban Muon NHAP Du Lieu MOI?", vbOKCancel, "Canh Bao!!!") = vbCancel Then Exit Sub
    S2.Cells.Clear
    S1.[A1:X38].Copy S2.[A1]
    n = 41
    Do While S1.Cells(n + 1, "A") <> ""
        n = n + 1
    Loop
    S1.Range("A41:BH" & n).Copy S2.[A42]
End Sub

pác cho em hỏi : dòng S1.Range("A41:BH" & n).Copy S2.[A42] nhưng bây giờ em muốn dán giá trị
" PasteSpecial Paste:=xlPasteValues "
thì sao ko vậy pác
 
Upvote 0
pác cho em hỏi : dòng S1.Range("A41:BH" & n).Copy S2.[A42] nhưng bây giờ em muốn dán giá trị
" PasteSpecial Paste:=xlPasteValues "
thì sao ko vậy pác
Được chứ bạn, bạn chỉ cần thay dòng lệnh này bởi các dòng lệnh sau là được:
PHP:
S1.Range("A41:BH" & n).Copy
S2.Select
[A42].PasteSpecial xlPasteValues
 
Upvote 0
Em thanks pác nha, dữ liệu của em bị lỗi khi paste . (rất cảm ơn pác nha " ko thầy đố mày làm nên")
 
Upvote 0
pác nghiaphuc cho em hỏi thêm vấn đề này.

Em lập file đọc số liệu (nội lực và tiết diện xuất từ Etabs), ko phát hiện thấy lỗi nhưng sao lại ko cho copy formulas hết cho các dòng. Cụ thể dòng này sao em thấy ko đc thực thi nhỉ "[E2].AutoFill Destination:=Range(Cells(2, "E"), Cells(n, "E")), Type:=xlFillDefault"
Nhờ Pác check giúp em. Thanks

Private Sub nhapnoiluc_Click()
Dim n As Integer, m As Integer, q As Integer, p As Integer, i As Integer, S1 As Worksheet, S2 As Worksheet, S3 As Worksheet

'nhap noi luc'
Set S1 = Sheets("noi luc Etab")
Set S2 = Sheets("tinhthep")
Set S3 = Sheets("Frame Section Assignments")
If MsgBox("Ban Muon NHAP Du Lieu MOI?", vbOKCancel, "Canh Bao!!!") = vbCancel Then Exit Sub

n = 1
p = 41
Do While S1.Cells(n + 1, "A") <> ""
n = n + 1
p = p + 1
Loop
S2.Range("A42:K" & p).Clear
S2.Range("O42:P" & p).Clear

m = 1
Do While S1.Cells(m + 1, "A") <> ""
m = m + 1
Loop
S1.Range("A2:D" & m).Copy
S2.Select
[A42].PasteSpecial xlPasteValues
S1.Range("E2:J" & m).Copy
S2.Select
[F42].PasteSpecial xlPasteValues

'nhap tiet dien b, h cot'
'tiet dien tren sheet Frame section assigment va Frame Section Properties '

S3.Select
S3.Cells(2, "E").Select
ActiveCell.FormulaR1C1 = "=RC[-4]&RC[-3]"
n = 1
Do While Cells(n + 1, "A") <> ""
n = n + 1
Loop
S3.Cells(2, "E").Select
[E2].AutoFill Destination:=Range(Cells(2, "E"), Cells(n, "E")), Type:=xlFillDefault

Sheets("tinhthep").Select
Range("O42").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(VLOOKUP(RC[-14]&RC[-13],'Frame Section Assignments'!R2C5:R10000C9,2,0),'Frame Section Properties'!R2C1:R1000C9,8,0)*100"
Range("P42").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(VLOOKUP(RC[-15]&RC[-14],'Frame Section Assignments'!R2C5:R10000C9,2,0),'Frame Section Properties'!R2C1:R1000C9,7,0)*100"

'
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom