Những câu hỏi về code, xin giải thích các code, đề nghị các bạn gửi vào đây

Liên hệ QC
Status
Không mở trả lời sau này.

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
Kể từ hôm nay, tất cả những câu hỏi nhờ giải thích dùm một đoạn code, hay là hỏi những vấn đề linh tinh gì liên quan đến cách viết code, đề nghị các bạn gửi chung vào đây.

Những đề tài mới với tiêu đề: "Nhờ giải thích dùm đoạn code", mà không nói rõ là code gì, code dùng để làm gì, sẽ bị xóa.

BQT

----------------------------------------------------------------------------------------------------------------


Em xin được hỏi 2 đoạn code sau có tương đương nhau ?

Cells(Cells.Rows.Count, 1).End(xlUp).Row có tương đương với [A65000].End(xlup).row

Cám ơn các anh chỉ giáo
 
Chỉnh sửa lần cuối bởi điều hành viên:
Nếu không có bẫy lỗi thì code của bạn bị lỗi chứ làm gì hiện UserForm được. Bạn sửa lại như thế này.
PHP:
Sub Button1_Click()
Application.DisplayAlerts = False
ActiveWindow.ActiveSheet.Delete
Menu.Show
Application.DisplayAlerts = True
End Sub
Nhưng tôi vẫn thấy kỳ kỳ. Xóa sheet hiện hành thì Button cũng bị xóa luôn. Lần sau lấy cái gì mà Click đây.
Cảm ơn huuthang, tại vì sheet này là khi thực hiện một lệnh nó mới tạo ra sheet tạm thời này để xem dữ liệu, và tạo luôn các button này. Do vậy khi xem xong mình trở về Form menu đồng thời xóa luôn sheet này.
 
Upvote 0
Cái sai của bạn nằm ở đây

ActiveWindow.ActiveSheets.Delete

Bạn sửa thành:

ActiveSheet.Delete

Chạy vô tư trừ khi nó là Sheet cuối cùng
 
Upvote 0
Đoạn code này sai chỗ nào?xin chỉ giúp!!

Mình muốn chọn dữ liệu từ Ô Ai đến Ô A20 nhưng dòng "Range ("A & i : A20").select " không có tác dụng, mong người người xem giúp.
dim i
i = Range("A1").value
Range ("A & i : A20").select
 
Upvote 0
Sao bạn không dùng Range("Ai1:A20").Select
 
Upvote 0
Bạn bị lỗi cú pháp thôi.

Dim i
I = Range("A1").Value
' Thêm câu lệnh xử lý điều kiện để tránh gây lỗi
If i > 0 Then Sheet1.Range("A" & i & ":A20").Select
 
Upvote 0
Upvote 0
Để học code từ căn bản để có thể sử dụng thành thạo như các Pro thì học từ đâu!?
 
Upvote 0
Thế thì hay quá, xin hỏi tiếp là bắt đầu học cái gì để có thể viết code. Ý là người mới toanh đó...
Thankyou!
Kiến thức cơ bản về Visual Basic for Applications (VBA)
Chập chững đến với VBA
2 bài này thôi là học mệt luôn rồi ---> Ngoài ra có thể mua sách do GPE xuất bản
Kinh nghiệm bản thân:
- Hỏi nhiều
- Làm nhiều
- Liên tục cải tiến và không bao giờ hài lòng với những cái đã làm
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn nhiều nhé. Nhưng liệu cách tổ chức bài viết có giúp mình nắm bắt được không? Thử xem sao

À, đọc cái nào mà có thể nắm bắt cơ bản sau đó tự ngâm cứu tiếp ! Giống như 1 tuổi biết đi rồi nó tự đi và sau đó nó chạy được ấy. Hy vọng là bài trên sẽ giải quyết!
Thank nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Ý nghĩa dòng code

Chào cả nhà GPE!
Em xin hỏi dòng code này có nghĩa là gì?
PHP:
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Xin anh/chị giải thích kỹ dùm em nhé!
 
Upvote 0
Em xin hỏi dòng code này có nghĩa là gì?
PHP:
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Xin anh/chị giải thích kỹ dùm em nhé!

(1)
Mã:
iRow = ws.Cells([COLOR="Red"]Rows.Count[/COLOR], 1).End(xlUp).Offset(1, 0).Row
Rows.Count := Số dòng có trên trang tính của ta;
(2)
Mã:
 iRow = ws.[COLOR="Red"]Cells(Rows.Count, 1)[/COLOR].End(xlUp).Offset(1, 0).Row
Cells(Rows.Count,1) := Ô cuối cùng của cột đầu (cột 'A')
(3)
Mã:
 iRow = ws.[COLOR="Red"]Cells(Rows.Count, 1).End(xlUp)[/COLOR].Offset(1, 0).Row
Nghĩa là từ ô cuối cột 'A' ta bấm giữ fím {CTRL} & bấm cùng nó fím mũi tên lên. Lúc đó ta sẽ đến ô cuối cùng của cột 'A' có chứa dữ liệu
(4) Fương thức Offset(1,0) cũng tương tự như ta bấm fím mũi tên xuống để chọn được ô cùng cột ('A') dòng dưới liền kề;

(5) F ương thức Row cuối dòng lênh sẽ cho ta biết số hiệu dòng mà ta vừa tới;

(6) Lấy số hiệu dòng này gán vô biến đã được đặt tên là iRow;

Có những dòng lệnh sau:

iRow = ws.Cells(65535, 1).End(xlUp).Offset(1, 0).Row

iRow = ws.[A65535].End(xlUp).Offset(1, 0).Row

cũng là cùng họ;

Còn ws hẵn là 1 biến đối tượng đã được tác gia khai báo để tiện gán cho trang tính đang được lệnh này tác động.

Mong giúp được bạn ít nhiều!
 
Upvote 0
Anh SA_DQ ơi, nhân tiện em có ví dụ muốn nhờ anh xem luôn dùm cho em nhe!
User: abc
Pass: 1234
 

File đính kèm

  • QUAN LY NHAN SU.rar
    68 KB · Đọc: 26
Upvote 0
Đây là code em viết:
Mã:
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("DATA")
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
  If Trim(Me.TextBox2.Value) = "" Then
  Me.TextBox2.SetFocus
  MsgBox "Ma nhan vien khong duoc de trong ", vbCritical + vbOKOnly
  Exit Sub
End If
ws.Cells(iRow, 1).Value = Me.TextBox1.Value
ws.Cells(iRow, 2).Value = Me.TextBox2.Value
ws.Cells(iRow, 3).Value = Me.TextBox3.Value
ws.Cells(iRow, 4).Value = Me.TextBox4.Value
ws.Cells(iRow, 5).Value = Format(Me.TextBox5.Value, "DD/MM/YYYY")
ws.Cells(iRow, 6).Value = Me.TextBox6.Value
ws.Cells(iRow, 7).Value = Me.TextBox7.Value
ws.Cells(iRow, 8).Value = Format(Me.TextBox8.Value, "DD/MM/YYYY")
ws.Cells(iRow, 9).Value = Me.TextBox9.Value
ws.Cells(iRow, 10).Value = Me.TextBox10.Value
ws.Cells(iRow, 11).Value = Me.TextBox11.Value
ws.Cells(iRow, 12).Value = Me.TextBox12.Value
ws.Cells(iRow, 13).Value = Me.TextBox13.Value
ws.Cells(iRow, 14).Value = Me.TextBox14.Value
ws.Cells(iRow, 15).Value = Format(Me.TextBox15.Value, "DD/MM/YYYY")
ws.Cells(iRow, 16).Value = Me.TextBox16.Value
ws.Cells(iRow, 17).Value = Format(Me.TextBox17.Value, "DD/MM/YYYY")
ws.Cells(iRow, 18).Value = Me.TextBox18.Value
ws.Cells(iRow, 19).Value = Me.TextBox19.Value
ws.Cells(iRow, 20).Value = Me.TextBox20.Value
ws.Cells(iRow, 21).Value = Me.TextBox21.Value
ws.Cells(iRow, 22).Value = Me.TextBox22.Value
ws.Cells(iRow, 23).Value = Me.TextBox23.Value
ws.Cells(iRow, 24).Value = Me.TextBox24.Value
ws.Cells(iRow, 25).Value = Me.TextBox25.Value
ws.Cells(iRow, 26).Value = Me.TextBox26.Value
ws.Cells(iRow, 27).Value = Format(Me.TextBox27.Value, "DD/MM/YYYY")
ws.Cells(iRow, 28).Value = Format(Me.TextBox28.Value, "DD/MM/YYYY")
ws.Cells(iRow, 29).Value = Format(Me.TextBox29.Value, "DD/MM/YYYY")
ws.Cells(iRow, 30).Value = Me.TextBox30.Value
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
Me.TextBox7.Value = ""
Me.TextBox8.Value = ""
Me.TextBox9.Value = ""
Me.TextBox10.Value = ""
Me.TextBox11.Value = ""
Me.TextBox12.Value = ""
Me.TextBox13.Value = ""
Me.TextBox14.Value = ""
Me.TextBox15.Value = ""
Me.TextBox16.Value = ""
Me.TextBox17.Value = ""
Me.TextBox18.Value = ""
Me.TextBox19.Value = ""
Me.TextBox20.Value = ""
Me.TextBox21.Value = ""
Me.TextBox22.Value = ""
Me.TextBox23.Value = ""
Me.TextBox24.Value = ""
Me.TextBox25.Value = ""
Me.TextBox26.Value = ""
Me.TextBox27.Value = ""
Me.TextBox28.Value = ""
Me.TextBox29.Value = ""
Me.TextBox30.Value = ""
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub TextBox5_AfterUpdate()
TextBox5 = Format(Me.TextBox5.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox8_AfterUpdate()
TextBox8 = Format(Me.TextBox8.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox15_AfterUpdate()
TextBox15 = Format(Me.TextBox15.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox17_AfterUpdate()
TextBox17 = Format(Me.TextBox17.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox27_AfterUpdate()
TextBox27 = Format(Me.TextBox27.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox28_AfterUpdate()
TextBox28 = Format(Me.TextBox28.Value, "DD/MM/YYYY")
End Sub
Private Sub TextBox29_AfterUpdate()
TextBox29 = Format(Me.TextBox29.Value, "DD/MM/YYYY")
End Sub
Anh xem dùm em nhé!
 
Upvote 0
Nó ghi vô dòng 22 là đúng rồi!

Vì dòng 21 đang có công thức & nếu xóa công thức trong [A21] thì nó sẽ ghi vô dòng 18 của trang tính.

Lỗi của chàng mà chàng lại đổ thừa cho macro; Tội nghiệp cho nó làm vậy! @!## @!## @!##
 
Upvote 0
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom