[hỏi] đoạn code add dữ liệu theo điều kiện (1 người xem)

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

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

truog91

Thành viên mới
Tham gia
20/12/16
Bài viết
4
Được thích
0
em đang mày mò excel vba mà không có kiến thức lập trình gì cả nên có nhiều thắc mắc nhờ anh/chị giúp đỡ ạ.

yêu cầu :
em có một combo box drop down xuống các giá trị có trong bảng đã ghi sẵn.
dựa vào giá trị của combo box đó điền giá trị từ text box vào các rows bên cạnh.

hiện tại thì em lấy giá trị từ combo box về bằng <tên combo box>.value
rồi dùng lệnh sheets(<tên sheet thực hiện>).cells(<têncombobox>.value).value = <têncombobox>.value
không chạy được vì em nghĩ em dùng lệnh này cũng sai rồi.
vì vậy nếu có thể mong được anh chị chỉ bảo ạ.
 
Mã:
Sub tim()
'tim row va chen vao row tim duoc
Dim thay As Range
Dim gt As Integer
Dim ws As Worksheet
gt = cmbRoom.Value
Set thay = Sheets("Info").Columns("B").Find(what:=gt, LookIn:=xlValues, lookat:=xlWhole)
If thay Is Nothing Then
    MsgBox ("khong thay")
    Else
    'MsgBox thay.Row
    Set ws = Sheets("Info")
    ws.Columns(thay.Row, 3).Value = txtName.Value
    End If
End Sub

hiện tại em đang chạy thử đoạn code này nhưng vẫn chưa chèn được như ý muốn. em đã tìm được row theo ý mình rồi chỉ chưa chèn được vào row đó thôi @@.
em vẫn chưa biết update file nên các anh chị thông cảm ạ.
 
Upvote 0
Bạn chạy thử với cái ni xem sao:

PHP:
Option Explicit
Sub tim()
'Tìm Dòng & Chèn Vào Dòng Tìm Duoc'
Dim Thay As Range, wS As Worksheet
Dim GT As Integer
On Error GoTo LoiCT

1 Set wS = Sheets("Info")
 GT = Me!cmbRoom.Value
3 Set Thay = wS.Columns("B:B").Find(what:=GT, LookIn:=xlValues, lookat:=xlWhole)
 If Thay Is Nothing Then
5    MsgBox ("khong thay"), , "GPE.COM Xin Chào!"
 Else
7    wS.Cells(Thay.Row, 3).Value = Me!txtName.Value
 End If
Err_:   Exit Sub
LoiCT:
    MsgBox Erl, , Error()
    Resume Err_
End Sub
 
Upvote 0
em đang mày mò excel vba mà không có kiến thức lập trình gì cả nên có nhiều thắc mắc nhờ anh/chị giúp đỡ ạ.

yêu cầu :
em có một combo box drop down xuống các giá trị có trong bảng đã ghi sẵn.
dựa vào giá trị của combo box đó điền giá trị từ text box vào các rows bên cạnh.

hiện tại thì em lấy giá trị từ combo box về bằng <tên combo box>.value
rồi dùng lệnh sheets(<tên sheet thực hiện>).cells(<têncombobox>.value).value = <têncombobox>.value
không chạy được vì em nghĩ em dùng lệnh này cũng sai rồi.
vì vậy nếu có thể mong được anh chị chỉ bảo ạ.

Bạn nên có File thực tế thì các thành viên có thể góp ý hoặc giúp sẽ được nhanh chóng hơn.
 
Upvote 0
PHP:
Option Explicit
Sub tim()
'Tìm Dòng & Chèn Vào Dòng Tìm Duoc'
Dim Thay As Range, wS As Worksheet
Dim GT As Integer
On Error GoTo LoiCT

1 Set wS = Sheets("Info")
 GT = Me!cmbRoom.Value
3 Set Thay = wS.Columns("B:B").Find(what:=GT, LookIn:=xlValues, lookat:=xlWhole)
 If Thay Is Nothing Then
5    MsgBox ("khong thay"), , "GPE.COM Xin Chào!"
 Else
7    wS.Cells(Thay.Row, 3).Value = Me!txtName.Value
 End If
Err_:   Exit Sub
LoiCT:
    MsgBox Erl, , Error()
    Resume Err_
End Sub
Cám ơn anh ạ Em đã chạy được rồi ạ em chưa hiểu cách xác định lỗi qua các con số anh đặt lắm anh có thể chỉ em tài liệu đọc để em có thể tự viết không ạ. vì nó chỉ ra chỗ mình sai không chạy được nên rất dễ sửa.
 
Upvote 0
Cám ơn anh; Em chưa hiểu cách xác định lỗi qua các con số anh đặt lắm anh có thể chỉ em tài liệu đọc để em có thể tự viết không ạ. vì nó chỉ ra chỗ mình sai không chạy được nên rất dễ sửa.

Tài liệu thì lâu quá rồi, không thể nhớ;

Đại í thế này:

(*) VBE cho fép ta đánh số các dòng lệnh & ta có thể nhờ hàm Erl() của nó để kiểm tra dòng lệnh nào đang sai';

Tất nhiên ta không cần đánh số hết tất thẩy các dòng lệnh, vì 1 số dòng lệnh ta có thể đinh ninh là không sai tẹo nào.

(*) Ta cũng có thể nhờ đọc trợ giúp từ VBE để tìm hiểu thêm về các hàm Err(), Error(), Erl()
Chúng rất hữu dụng trong trường hợp chương trình của ta đang bị lỡi.


Đây là 1 trong những trợ giúp từ VBE:
PHP:
   Err  Object Contains information about run-time errors.
 Remarks The properties of the Err  object are set by the generator of an error — Visual Basic, an object, or the  programmer.
 The default property of the Err object is Number. Because the default property can be represented by the  object name Err, earlier code written using the Err function or Err statement doesn't have to  be modified.
 When a run-time error occurs, the properties of the Err  object are filled with information that uniquely identifies the error and  information that can be used to handle it. To generate a run-time error in your  code, use the Raise method.
 The Err object's properties are reset to zero or  zero-length strings ("") after an Exit Sub, Exit Function, Exit Property or Resume Next statement within an error-handling routine. Using  any form of the Resume statement outside of an error-handling  routine will not reset the Err object's properties. The Clear method can be used to explicitly reset Err.
 Use the Raise method, rather than the Error statement, to generate run-time errors for system errors  and class modules. Using the Raise method in other code  depends on the richness of the information you want to return.
 The Err object is an intrinsic object with global scope. There is no need to create an instance of it in  your code.
 Example This example uses the properties of the Err object in  constructing an error-message dialog box. Note that if you use the Clear method first, when you generate a Visual Basic error with  the Raise method, Visual Basic's default values become the  properties of the Err object.
     Dim Msg
' If an error occurs, construct an error message
On Error Resume Next    ' Defer error handling.
Err.Clear
Err.Raise 6    ' Generate an "Overflow" error.
' Check for error, then show message.
If Err.Number <> 0 Then
    Msg = "Error # " & Str(Err.Number) & " was generated by " _
            & Err.Source & Chr(13) & Err.Description
    MsgBox Msg, , "Error", Err.Helpfile, Err.HelpContext
End If

Bạn tiếp tục với những trợ giúp khác nữa trong nớ & chúc thành công.
 
Upvote 0
Web KT

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

Back
Top Bottom