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:
Thanks ChanhTQ@ nhưng mình làm không được nội dung trong cột D chỉ ẩn dòng đầu nhưng các dòng sau no ko ẩn được mình có gửi kem tập tin đó.
Vầy thử xem:
PHP:
Private Sub cmdRun_Click()
  Dim Rng As Range
  On Error Resume Next
  Set Rng = Range([A3], [A65536].End(xlUp))
  With cmdRun
    Rng.SpecialCells(4).EntireRow.Hidden = .Caption = "Hide"
    .Caption = IIf(.Caption = "Hide", "UnHide", "Hide")
  End With
End Sub
 

File đính kèm

  • Book1.xls
    20.5 KB · Đọc: 24
Lần chỉnh sửa cuối:
Upvote 0
Giải thích giúp mình code in theo điều kiện

Câu hỏi của mình trong file đính kèm.
 

File đính kèm

  • in theo dieu kien.rar
    47.2 KB · Đọc: 9
Upvote 0
Câu hỏi của mình trong file đính kèm.

Tại sao L10 chỉ chạy đến 6
Vì bạn chỉ copy công thức đánh số TT bên sheet DATA cột A đến dòng 6 thôi, còn dòng 7 bị trống nên bị như vậy, vì trong code lấy dòng cuối để in là tính từ ô A5 xuống dưới một cách liên tục theo dòng này
PHP:
cuoi = Sheets("DATA").Cells(5, 1).End(xlDown).Row

số bản in ra không theo đúng như giá trị của L11
Vì trong code lấy sô bản in ở ô L10 theo dòng này.
PHP:
Copies:=Range("l10").Value

và để sửa lại thì bạn nên dùng code sau (mình đã có chỉnh sửa code cũ)
trước khi in bạn nhớ đặt máy in mặc định nhé.

PHP:
Sub Inphieu()
''code nay cua cac bac tren GPE
On Error GoTo baoloi
Dim dau As Integer, cuoi As Integer, n As Integer, rng As Range
Set rng = Range(Sheets("DATA").Cells(5, 1), Sheets("DATA").Cells(5, 1).End(xlDown))
dau = Application.WorksheetFunction.Min(rng)
cuoi = Application.WorksheetFunction.Max(rng)
If dau > 0 Then
For n = dau To cuoi
Sheet1.Cells(10, 12) = n
  ActiveWindow.SelectedSheets.PrintOut Copies:=Range("l11").Value
Next
Else
MsgBox "Chang co gi de in ca !"
End If
GoTo done
baoloi:
MsgBox "co loi!", vbOKOnly, "In giay uy quyen quyet toan"
done:
End Sub
 

File đính kèm

  • in theo dieu kien.rar
    49.2 KB · Đọc: 18
Upvote 0
Hỏi về code làm phần mềm giải phương trình bậc 2

Em mới học lập trình nên khi viết code hay bị thiếu và sai. Em mới làm 1 chương trình giải phương trình bậc 2 bằng vb nhưng khi chạy thì chương trình báo lỗi. Mong mọi người xem rồi chỉnh sửa code giúp em để chương trình có thể chạy được.Chương trình làm bằng vb6.
 

File đính kèm

  • pt bac 2.rar
    1.9 KB · Đọc: 21
Upvote 0
Sao bạn không đăng mã code đó lên bài luôn?

Em mới học lập trình nên khi viết code hay bị thiếu và sai. Em mới làm 1 chương trình giải phương trình bậc 2 bằng vb nhưng khi chạy thì chương trình báo lỗi. Mong mọi người xem rồi chỉnh sửa code giúp em để chương trình có thể chạy được.Chương trình làm bằng vb6.

Mình chưa thể xem được đoạn code đó; Nhưng nếu không fải tìm nghiệm ảo thì trên diễn đàn này không thiếu cách giải;
Bạn thử tìm kiếm & tham khảo thêm; Biết đâu sau 1 hồi đối chiếu bạn sẽ tìm ra được cái gì đó mà bạn đang thừa hay thiếu cũng nên!

Chúc thành công.
 
Upvote 0
Mã:
Sub Doi()
Dim Cll As Range, [COLOR="red"][B]Ch1, Dec[/B][/COLOR]
Ch1 = Application.ThousandsSeparator
Dec = InputBox("Nhap ky tu tach:")
For Each Cll In Selection
Cll = Replace(Format(Cll, "#,##0"), [COLOR="red"]Ch1, Dec[/COLOR])
Next
End Sub
Nhờ các bạn giải thích ý nghĩa của các tham số Ch1 và Dec trong code trên. Thanks !
 
Upvote 0
Mã:
Sub Doi()
Dim Cll As Range, [COLOR=red][B]Ch1, Dec[/B][/COLOR]
Ch1 = Application.ThousandsSeparator
 '  . . . . '
Next
End Sub
Nhờ các bạn giải thích ý nghĩa của các tham số Ch1 và Dec trong code trên. Thanks !
Nếu code này đang trong CS (của sổ) VBE, ta lấy chuột tô chọn các từ Application.ThousandsSeparator & nhấn {F1} ta sẽ được đưa đến màn hình chứa các câu được trích dẫn sau đây:
Nội dung | Dịch tạm
ThousandsSeparator Property| Thuộc tính dấu fân cách fần ngàn

ThousandsSeparator PropertySets or returns the character used for the thousands separator as a String . Read/write.| Gán hay trả về ký tự được sử dụng để fân cách các số hàng ngàn như là 1 kí tự. (Có tính) đọc/ghi

Và nó còn đưa ra các ví dụ sau:housandsSeparator PropertyExample

This example places "1,234,567.89" in cell A1 then changes the system separators to dashes for the decimals and thousands separators.
PHP:
Sub ChangeSystemSeparators()

    Range("A1").Formula = "1,234,567.89"
    MsgBox "The system separators will now change."

    ' Define separators and apply.
    Application.DecimalSeparator = "-"
    Application.ThousandsSeparator = "-"
    Application.UseSystemSeparators = False

End Sub
Còn biến Des (đán ra cần khai kiểu dữ liệu là chuỗi (As String)) là bạn hiểu liền hà.
Biến này dùng để thay thế dấu fân cách số hàng ngàn (Tách theo nhóm theo yêu cầu của chủ topic - Ta có thể dùng " ", "-",. . . )

Mong giúp được bạn ít nhiều.
 
Upvote 0
Nhờ các bạn giải thích ý nghĩa của các tham số Ch1 và Dec trong code trên. Thanks !

Bác hỏi cho ai mà dễ thế ạ?

- Ch1 là lấy dấu phân cách hàng ngàn của hệ thống
- Dec là lấy ký tự phân cách theo ý muốn của người dùng bằng inputbox
- Trong hàm Replace: Thay ký tự Ch1 bằng ký tự Dec trong chuỗi (tạo từ số) có đầy đủ ký tự phân cách hàng ngàn theo hệ thống. (Muốn thay thế nó thì phải cho nó ló cái mặt ra í mà)
 
Upvote 0
Em mới học lập trình nên khi viết code hay bị thiếu và sai. Em mới làm 1 chương trình giải phương trình bậc 2 bằng vb nhưng khi chạy thì chương trình báo lỗi. Mong mọi người xem rồi chỉnh sửa code giúp em để chương trình có thể chạy được.Chương trình làm bằng vb6.
Bạn xóa 2 TextBox txtBtxtC rồi vẽ lại cái khác là được rồi
(Tuy nhiên, code dài dòng quá)
 
Upvote 0
Bác hỏi cho ai mà dễ thế ạ?

- Ch1 là lấy dấu phân cách hàng ngàn của hệ thống
- Dec là lấy ký tự phân cách theo ý muốn của người dùng bằng inputbox
- Trong hàm Replace: Thay ký tự Ch1 bằng ký tự Dec trong chuỗi (tạo từ số) có đầy đủ ký tự phân cách hàng ngàn theo hệ thống. (Muốn thay thế nó thì phải cho nó ló cái mặt ra í mà)

Tôi hỏi như vậy vì code sau cũng có kết quả y chang (không cần Ch1 và Dec)
Mã:
Sub Nhom()
Dim cls As Range
    For Each cls In [b1].Resize(50).SpecialCells(2)
        cls = Format(cls, "#,##0")
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Đoạn code Bác hỏi của Sealand thì phải. Đoạn code đó cho phép người dùng sử dụng ký tự "-", khoảng trống " ", ... thay cho dấu phân cách. Ký tự đó cho vào sau bằng inputbox tuỳ ý thích mỗi người. Đoạn code của Bác ấn định ký tự "," không cần biết người dùng có thích hay không. Đại khái là thế.
 
Upvote 0
Giúp đở tôi, lổi code đau đầu quá!

Doạn code nầy tôi cpoy trong 1 file của bạn nào đó trên GPE (không nhớ tên), nhưng file đó bỏ vào máy tôi chỉnh hàng cột theo ý riêng thì vẫn tốt, nhưng khi copy code vào file của tôi thì bị lổi khó hiểu, có một bạn cũng muốn giúp tôi nhưng file về máy bạn ấy thì bạn ấy nói không gặp lổi như tôi miêu tả, tôi không biết máy tôi có bị... HIV không nên ghost lại - không khác hơn. Nhờ các bạn và ACE xem trong file đính kèm để có cách nào khắc khục và mách dùm.

(Sau file tôi đưa lên rồi mà vào không thấy??)

Nếu là vậy xin tải chổ nầy:
http://www.mediafire.com/?a9yaz311e37eoev
 
Lần chỉnh sửa cuối:
Upvote 0
Doạn code nầy tôi cpoy trong 1 file của bạn nào đó trên GPE (không nhớ tên), nhưng file đó bỏ vào máy tôi chỉnh hàng cột theo ý riêng thì vẫn tốt, nhưng khi copy code vào file của tôi thì bị lổi khó hiểu, có một bạn cũng muốn giúp tôi nhưng file về máy bạn ấy thì bạn ấy nói không gặp lổi như tôi miêu tả, tôi không biết máy tôi có bị... HIV không nên ghost lại - không khác hơn. Nhờ các bạn và ACE xem trong file đính kèm để có cách nào khắc khục và mách dùm.

(Sau file tôi đưa lên rồi mà vào không thấy??)

Nếu là vậy xin tải chổ nầy:
http://www.mediafire.com/?a9yaz311e37eoev
Bạn mô tả trời đất gì mà tôi chẳng tài nào hiểu nỗi:
Cái ComboBox nầy là để mình lấy link mã hàng hoặc mả KH đưa vào bảng tính, do cách dùng riêng mà mình không sử dụng "Bảng chọn DL". Nhưng lổi khi mình cích vào nó chọn 1 đối tượng thì nó ra nhiều hàng như thấy bên góc trái
Cứ như đọc tiếng Miên
Tóm lại: Giờ bạn muốn thế nào?
 
Upvote 0
tóm lại Thì hiện bảng tính đang bị lổi ở code khi Cích vào ComboBox trong danh sách sổ suống chọn một đối tượng xong nó lại không ra một mà ra đến 3, 4 hàng cùng một đối tượng. xin giúp
 
Upvote 0
Bạn mô tả trời đất gì mà tôi chẳng tài nào hiểu nỗi:
Cứ như đọc tiếng Miên
Tóm lại: Giờ bạn muốn thế nào?
Nghĩa là khi bạn ấy click chọn 1 mặt hàng trong combobox, nó insert 4 dòng vào dữ liệu chứ không phải 1.
 
Upvote 0
tóm lại Thì hiện bảng tính đang bị lổi ở code khi Cích vào ComboBox trong danh sách sổ suống chọn một đối tượng xong nó lại không ra một mà ra đến 3, 4 hàng cùng một đối tượng. xin giúp
Đừng dùng name động nữa ---> Nạp Combo bằng code sẽ hết bị liền
Cụ thể:
PHP:
Private Sub ComboBox1_DropButtonClick()
  With Sheets("LINK DS")
    ComboBox1.List() = .Range(.[C4], .[C65536].End(xlUp)).Resize(, 2).Value
  End With
End Sub
PHP:
Private Sub ComboBox1_Change()
  With Range("C65000").End(xlUp)
    .Offset(1, 0) = ComboBox1.Text
    .Offset(1, 1) = Date
    .Offset(1, 2) = ComboBox1.Column(1)
  End With
End Sub
Điền ngày tháng ta cho luôn vào sự kiện ComboBox1_Change, chẳng cần phải thêm Worksheet_Change đâu
------------------------
Tuy nhiên, dùng ComboBox kiểu này sẽ có 1 nhược điểm: Không thể chọn 2 lần liên tiếp cùng 1 mã hàng ---> Tạm sửa lại: Dùng ComboBox1_Click như sau:
PHP:
Private Sub ComboBox1_Click()
  With Range("C65000").End(xlUp)
    .Offset(1, 0) = ComboBox1.Text
    .Offset(1, 1) = Date
    .Offset(1, 2) = ComboBox1.Column(1)
  End With
  ComboBox1.Text = ""
End Sub
 

File đính kèm

  • SO.rar
    52.3 KB · Đọc: 54
Lần chỉnh sửa cuối:
Upvote 0
Không biết cám ơn ndu96081631 mấy lần tôi đau đầu nó nhiều mà không mạnh hỏi.
 
Upvote 0
ndu96081631 cho xin hỏi thêm là có cách nào thu hẹp cột mã hàng trong ComboBox1 và nới rộng cột tên hàng không?
 
Upvote 0
ndu96081631 cho xin hỏi thêm là có cách nào thu hẹp cột mã hàng trong ComboBox1 và nới rộng cột tên hàng không?
Bấm nút Design Mode rồi click phải chuột vào ComboBox, chọn Properties:
- Mục ColumnWidths dùng để tăng giảm độ rộng các cột như bạn nói
- Mục ListWidth để chỉnh độ rộng của nguyên List
thử xem

untitled.JPG
 
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