Sửa giúp đoạn code "Điền dữ liệu"

Liên hệ QC

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
Mã:
[B]Sub dien_du_lieu()[/B]
Dim i, j As Integer:           Dim SN As String
Dim dt, dc, ds, str, stc, SR
Dim wsh As Worksheets
SN = InputBox(" nhap ten sheet")
    str = 12:                     stc = 2
    dc = Cells(str, stc).End(xlDown).Row
    i = str:                        j = stc
    Set SRa = Sheets("DATA").Range("A1:N160")
    Set SRb = Sheets("DATA").Range("P1:AE160")
    [B][SIZE="2"]Set wsh = Sheets("SN")[/SIZE][/B]  '<<=='
    wsh.Select
        Application.ScreenUpdating = False
            If Cells(i, j).Value = "" Then
                For j = 2 To 14
                    Cells(i, j).Value = WorksheetFunction.VLookup(wsh.Name, SRa, j, 0)
                Next j
                For j = 15 To 31
                    Cells(i, j).Value =  _
                           WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)
                Next j
                    If Cells(i, j).Value >= 0 And Cells(i + 1, j).Value = "" Then
                            For j = 2 To 14
                                Cells(i + 1, j).Value =  _
                                     WorksheetFunction.VLookup(wsh.Name, SR, j, 0)
                            Next j
                            For j = 15 To 31
                                Cells(i + 1, j).Value =  _
                                      WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)
                            Next j
                    End If
            Else:
                            For j = 2 To 14
                                Cells(dc, j).Value =  _
                                       WorksheetFunction.VLookup(wsh.Name, SR, j, 0)
                            Next j
                            For j = 15 To 31
                                Cells(i + 1, j).Value =  _
                                         WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)
                            Next j
            End If
        Application.ScreenUpdating = True
End Sub
tại sao nó cứ báo lỗi ở dòng in đậm.
nhân tiện nhờ các bác xem hộ em luôn đoạn code này còn có thể sai ở chỗ nào khác không.
em cảm ơn các bác nhiều !%#^#$
 
Set wsh = Sheets("SN")
Phải là
Set wsh = Sheets(SN)
 
Upvote 0
em đã làm như thế nhưng nó vẫn báo lỗi (vàng) đúng dòng đó .
 
Upvote 0
Up file lên đi, có thể phần input nhập dư Blank hay sai chính tả
 
Upvote 0
thank bác, em tìm ra rồi là do khai báo biến wsh phía trên bị sai là worksheets, phải là worksheet thì mới đúng.
nhờ bác xem hộ em sao dòng in đậm lại bị báo sai
Mã:
If Cells(i, j).Value = "" Then
  For j = 2 To 14
    Cells(i, j).Value = WorksheetFunction.VLookup(wsh.Name, SRa, j, 0)
  Next j
  For j = 15 To 31
     [B][SIZE="2"]Cells(i, j).Value = WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)[/SIZE][/B] [COLOR="Blue"]'<<=='[/COLOR]
  Next j
  If Cells(i, j).Value >= 0 And Cells(i + 1, j).Value = "" Then
     For j = 2 To 14
        Cells(i + 1, j).Value = WorksheetFunction.VLookup(wsh.Name, SR, j, 0)
     Next j
     For j = 15 To 31
          Cells(i + 1, j).Value = WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)
     Next j
  End If
Else:
  For j = 2 To 14
    Cells(dc, j).Value = WorksheetFunction.VLookup(wsh.Name, SR, j, 0)
  Next j
  For j = 15 To 31
    Cells(i + 1, j).Value = WorksheetFunction.VLookup(wsh.Name, SRb, j - 13, 0)
  Next j
End If
nhân tiện cho em hỏi nhờ về hàm offset dùng trong vba như thế nào với
thanks các bác !
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi thí nghiệm chẳng thấy lổi gì!
Bạn thí nghiệm giống tôi thử xem:
PHP:
Sub Test()
   SN = InputBox(" nhap ten sheet")
   Set wsh = Sheets(SN)
   wsh.Activate
End Sub
 
Upvote 0
Web KT
Back
Top Bottom