Các bạn xem hộ mình cái Code này với (1 người xem)

  • Thread starter Thread starter khamha
  • Ngày gửi Ngày gửi
Liên hệ QC

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

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
846
Nghề nghiệp
CNVC Laos
Cái Code này mình dùng để nhập dữ liệu bằng Form tạo trong bảng tính,không hiểu tại sao nó chỉ cho nhập
dữ liệu được có 63 cột,trong khi đó mình lại muốn nhập vào là 96 cột.
Cảm ơn các bạn
Mã:
Sub UpdateLogWorksheet()

    Dim historyWks As Worksheet
    Dim inputWks As Worksheet

    Dim nextRow As Long
    Dim oCol As Long

    Dim myRng As Range
    Dim myCopy As String
    Dim myCell As Range
    
    'cells to copy from Input sheet - some contain formulas
    myCopy = "IT21,E3,E4,N2,N3,D6,B9,F9,J9,N9,J11,IU21,IV21,I21,L21,O21,IU22,IV22,I22,L22,O22,IU23,IV23,I23,L23,O23,IU24,IV24,I24,L24,O24,IU25,IV25,I25,L25,O25,IU26,IV26,I26,L26,O26,IU27,IV27,I27,L27,O27,IU28,IV28,I28,L28,O28,IU29,IV29,I29,L29,O29,IU30,IV30,I30,L30,O30"


    Set inputWks = Worksheets("Form1")
    Set historyWks = Worksheets("Data")

    With historyWks
        nextRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(2, 0).Row
    End With

    With inputWks
        Set myRng = .Range(myCopy)

        If Application.CountA(myRng) <> myRng.Cells.Count Then
            MsgBox "Khamha!"
            Exit Sub
        End If
    End With

    With historyWks
        With .Cells(nextRow, "A")
            .Value = Now
            .NumberFormat = "mm/dd/yyyy hh:mm:ss"
        End With
        .Cells(nextRow, "B").Value = Application.UserName
        oCol = 3
        For Each myCell In myRng.Cells
            historyWks.Cells(nextRow, oCol).Value = myCell.Value
            oCol = oCol + 1
        Next myCell
    End With
    
    'clear input cells that contain constants
    With inputWks
      On Error Resume Next
         With .Range(myCopy).Cells.SpecialCells(xlCellTypeConstants)
              .ClearContents
              Application.GoTo .Cells(1), Scroll:=True
         End With
      On Error GoTo 0
    End With
End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:
Cái Code này mình dùng để nhập dữ liệu bằng Form tạo trong bảng tính,không hiểu tại sao nó chỉ cho nhập
dữ liệu được có 63 cột,trong khi đó mình lại muốn nhập vào là 96 cột.
Cảm ơn các bạn

Bạn nên đưa File lên nhé
 
Upvote 0
Bạn chỉ có 61+2 ô mà thôi!

Hãy thử thế này:

Sau câu lệnh
Mã:
        oCol = 3
Bạn thêm câu sau
PHP:
        MsgBox myRng.Cells.Count + 2

Muốn thêm thì bổ sung vô dòng lệnh này đến khi nào VBA còn cho fép về độ dài biến kiểu chuỗi:
PHP:
    myCopy = "IT21,E3,E4,N2,N3,D6,B9,F9,J9,N9,J11,IU21,IV21,I21,L21,O21,IU22,IV22,I22,L22,O22,IU23,IV23,"
    myCopy = myCopy & "I23,L23,O23,IU24,IV24,I24,L24,O24,IU25,IV25,I25,L25,O25,IU26,IV26,I26,L26,O26,IU27"
    myCopy = myCopy & ",IV27,I27,L27,O27,IU28,IV28,I28,L28,O28,IU29,IV29,I29,L29,O29,IU30,IV30,I30,L30,O30"

Chúc may mắn!
 
Upvote 0
Hãy thử thế này:

Sau câu lệnh
Mã:
        oCol = 3
Bạn thêm câu sau
PHP:
        MsgBox myRng.Cells.Count + 2
Muốn thêm thì bổ sung vô dòng lệnh này đến khi nào VBA còn cho fép về độ dài biến kiểu chuỗi:
PHP:
    myCopy = "IT21,E3,E4,N2,N3,D6,B9,F9,J9,N9,J11,IU21,IV21,I21,L21,O21,IU22,IV22,I22,L22,O22,IU23,IV23,"
    myCopy = myCopy & "I23,L23,O23,IU24,IV24,I24,L24,O24,IU25,IV25,I25,L25,O25,IU26,IV26,I26,L26,O26,IU27"
    myCopy = myCopy & ",IV27,I27,L27,O27,IU28,IV28,I28,L28,O28,IU29,IV29,I29,L29,O29,IU30,IV30,I30,L30,O30"
Chúc may mắn!

Vẫn Không được bạn ạ,bạn còn cách nào không?
Mình thấy cái Code này có thể nhập được bao nhiêu cột tùy thích,nhưng nó lại bị lỗi khi ta ẩn Sheet"Data",nhờ các bạn sửa lại để
nó có thể hoạt động được khi ta ẩn Sheet"Data"
Cảm ơn các bạn
Code:
Sub NhapLieu()
Sheets("Form1").Select
A1 = Range("IT21").Value
A2 = Range("E3").Value
A3 = Range("E4").Value
A4 = Range("N2").Value
A5 = Range("N3").Value
A6 = Range("D6").Value
A7 = Range("B9").Value
A8 = Range("F9").Value
A9 = Range("J9").Value
A10 = Range("N9").Value
A11 = Range("J11").Value
A12 = Range("IU21").Value
A13 = Range("IV21").Value
A14 = Range("I21").Value
A15 = Range("L21").Value
A16 = Range("O21").Value
A17 = Range("IU22").Value
A18 = Range("IV22").Value
A19 = Range("I22").Value
A20 = Range("L22").Value
A21 = Range("O22").Value
A22 = Range("IU23").Value
A23 = Range("IV23").Value
A24 = Range("I23").Value
A25 = Range("L23").Value
A26 = Range("O23").Value
A27 = Range("IU24").Value
A28 = Range("IV24").Value
A29 = Range("I24").Value
A30 = Range("L24").Value
A31 = Range("O24").Value
A32 = Range("IU25").Value
A33 = Range("IV25").Value
A34 = Range("I25").Value
A35 = Range("L25").Value
A36 = Range("O25").Value
A37 = Range("IU26").Value
A38 = Range("IV26").Value
A39 = Range("I26").Value
A40 = Range("L26").Value
A41 = Range("O26").Value
A42 = Range("IU27").Value
A43 = Range("IV27").Value
A44 = Range("I27").Value
A45 = Range("L27").Value
A46 = Range("O27").Value
A47 = Range("IU28").Value
A48 = Range("IV28").Value
A49 = Range("I28").Value
A50 = Range("L28").Value
A51 = Range("O28").Value
A52 = Range("IU29").Value
A53 = Range("IV29").Value
A54 = Range("I29").Value
A55 = Range("L29").Value
A56 = Range("O29").Value
A57 = Range("IU30").Value
A58 = Range("IV30").Value
A59 = Range("I30").Value
A60 = Range("L30").Value
A61 = Range("O30").Value
A62 = Range("I31").Value
A63 = Range("L31").Value
A64 = Range("O31").Value
A65 = Range("E32").Value
A66 = Range("J13").Value
A67 = Range("N13").Value
A68 = Range("J15").Value
A69 = Range("N15").Value
A70 = Range("J17").Value
A71 = Range("F5").Value
A72 = Range("N5").Value
A73 = Range("D7").Value
A74 = Range("B11").Value
A75 = Range("E33").Value
A76 = Range("N11").Value
A77 = Range("B17").Value
A78 = Range("E18").Value
A79 = Range("B13").Value
A80 = Range("B15").Value
A81 = Range("E35").Value
A82 = Range("J35").Value
A83 = Range("O35").Value
A84 = Range("E34").Value
A85 = Range("J34").Value
A86 = Range("O34").Value
A87 = Range("E36").Value
A88 = Range("B37").Value
A89 = Range("B38").Value
A90 = Range("B39").Value
A91 = Range("E40").Value
A92 = Range("B41").Value
A93 = Range("B42").Value
A94 = Range("B43").Value
A95 = Range("N4").Value

Sheets("Data").Select
n = Range("F1").Value
Range("B1").Select
ActiveCell.Offset(n + 3, 0).Value = A1
ActiveCell.Offset(n + 3, 1).Value = A2
ActiveCell.Offset(n + 3, 2).Value = A3
ActiveCell.Offset(n + 3, 3).Value = A4
ActiveCell.Offset(n + 3, 4).Value = A5
ActiveCell.Offset(n + 3, 5).Value = A6
ActiveCell.Offset(n + 3, 6).Value = A7
ActiveCell.Offset(n + 3, 7).Value = A8
ActiveCell.Offset(n + 3, 8).Value = A9
ActiveCell.Offset(n + 3, 9).Value = A10
ActiveCell.Offset(n + 3, 10).Value = A11
ActiveCell.Offset(n + 3, 11).Value = A12
ActiveCell.Offset(n + 3, 12).Value = A13
ActiveCell.Offset(n + 3, 13).Value = A14
ActiveCell.Offset(n + 3, 14).Value = A15
ActiveCell.Offset(n + 3, 15).Value = A16
ActiveCell.Offset(n + 3, 16).Value = A17
ActiveCell.Offset(n + 3, 17).Value = A18
ActiveCell.Offset(n + 3, 18).Value = A19
ActiveCell.Offset(n + 3, 19).Value = A20
ActiveCell.Offset(n + 3, 20).Value = A21
ActiveCell.Offset(n + 3, 21).Value = A22
ActiveCell.Offset(n + 3, 22).Value = A23
ActiveCell.Offset(n + 3, 23).Value = A24
ActiveCell.Offset(n + 3, 24).Value = A25
ActiveCell.Offset(n + 3, 25).Value = A26
ActiveCell.Offset(n + 3, 26).Value = A27
ActiveCell.Offset(n + 3, 27).Value = A28
ActiveCell.Offset(n + 3, 28).Value = A29
ActiveCell.Offset(n + 3, 29).Value = A30
ActiveCell.Offset(n + 3, 30).Value = A31
ActiveCell.Offset(n + 3, 31).Value = A32
ActiveCell.Offset(n + 3, 32).Value = A33
ActiveCell.Offset(n + 3, 33).Value = A34
ActiveCell.Offset(n + 3, 34).Value = A35
ActiveCell.Offset(n + 3, 35).Value = A36
ActiveCell.Offset(n + 3, 36).Value = A37
ActiveCell.Offset(n + 3, 37).Value = A38
ActiveCell.Offset(n + 3, 38).Value = A39
ActiveCell.Offset(n + 3, 39).Value = A40
ActiveCell.Offset(n + 3, 40).Value = A41
ActiveCell.Offset(n + 3, 41).Value = A42
ActiveCell.Offset(n + 3, 42).Value = A43
ActiveCell.Offset(n + 3, 43).Value = A44
ActiveCell.Offset(n + 3, 44).Value = A45
ActiveCell.Offset(n + 3, 45).Value = A46
ActiveCell.Offset(n + 3, 46).Value = A47
ActiveCell.Offset(n + 3, 47).Value = A48
ActiveCell.Offset(n + 3, 48).Value = A49
ActiveCell.Offset(n + 3, 49).Value = A50
ActiveCell.Offset(n + 3, 50).Value = A51
ActiveCell.Offset(n + 3, 51).Value = A52
ActiveCell.Offset(n + 3, 52).Value = A53
ActiveCell.Offset(n + 3, 53).Value = A54
ActiveCell.Offset(n + 3, 54).Value = A55
ActiveCell.Offset(n + 3, 55).Value = A56
ActiveCell.Offset(n + 3, 56).Value = A57
ActiveCell.Offset(n + 3, 57).Value = A58
ActiveCell.Offset(n + 3, 58).Value = A59
ActiveCell.Offset(n + 3, 59).Value = A60
ActiveCell.Offset(n + 3, 60).Value = A61
ActiveCell.Offset(n + 3, 61).Value = A62
ActiveCell.Offset(n + 3, 62).Value = A63
ActiveCell.Offset(n + 3, 63).Value = A64
ActiveCell.Offset(n + 3, 64).Value = A65
ActiveCell.Offset(n + 3, 65).Value = A66
ActiveCell.Offset(n + 3, 66).Value = A67
ActiveCell.Offset(n + 3, 67).Value = A68
ActiveCell.Offset(n + 3, 68).Value = A69
ActiveCell.Offset(n + 3, 69).Value = A70
ActiveCell.Offset(n + 3, 70).Value = A71
ActiveCell.Offset(n + 3, 71).Value = A72
ActiveCell.Offset(n + 3, 72).Value = A73
ActiveCell.Offset(n + 3, 73).Value = A74
ActiveCell.Offset(n + 3, 74).Value = A75
ActiveCell.Offset(n + 3, 75).Value = A76
ActiveCell.Offset(n + 3, 76).Value = A77
ActiveCell.Offset(n + 3, 77).Value = A78
ActiveCell.Offset(n + 3, 78).Value = A79
ActiveCell.Offset(n + 3, 79).Value = A80
ActiveCell.Offset(n + 3, 80).Value = A81
ActiveCell.Offset(n + 3, 81).Value = A82
ActiveCell.Offset(n + 3, 82).Value = A83
ActiveCell.Offset(n + 3, 83).Value = A84
ActiveCell.Offset(n + 3, 84).Value = A85
ActiveCell.Offset(n + 3, 85).Value = A86
ActiveCell.Offset(n + 3, 86).Value = A87
ActiveCell.Offset(n + 3, 87).Value = A88
ActiveCell.Offset(n + 3, 88).Value = A89
ActiveCell.Offset(n + 3, 89).Value = A90
ActiveCell.Offset(n + 3, 90).Value = A91
ActiveCell.Offset(n + 3, 91).Value = A92
ActiveCell.Offset(n + 3, 92).Value = A93
ActiveCell.Offset(n + 3, 93).Value = A94
ActiveCell.Offset(n + 3, 94).Value = A95


Sheets("Form1").Select
Range("E3,E4").Select
Selection.ClearContents
Range("B3").Select
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử đếm xem biến chuỗi của bạn đã là bao nhiêu kí tự rồi?

Mình chưa đếm nhưng nó gần tới hạn rồi, bạn biết nó không được dài quá bao nhiêu không đã?

Để vượt tường lữa này, mình chỉ bạn 1 cách sau:
Sau dòng lệnh

Mã:
 Set myRng = .Range(myCopy)
bạn dùng fương thức Union(Cells1,Cell2, . . . ) xem sao
Về fương thức này có trong fần Intersect chữ kí của Sa_DQ đó
ví dụ sau dòng lệnh đó ta tiếp nha :
PHP:
 Set MyRng= Union(MyRng,[C25],[iU11:iU19],. . . )
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT

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

Back
Top Bottom