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:
Các cậu ơi, không biết có ai ghi giúp mình 1 đoạn code ví dụ như
Có 2 cột A1 và B1
Côt A1 để diền số và B1 để hiện thị thời gian tại lúc điền or thay đổi số ở cột A1 ( thời gian này chỉ và củng chỉ thay đổi nếu A1 thay đổi)
đại loại như thế này

=If(A1>0),now"")
Bấm chuột phải vào tên sheet cần dùng --> chọn view code --> copy đoạn code này vào:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Count = 1 Then
        Target.Offset(0, 1).Value = Now
    End If
End Sub
Về lại excel gõ vào cột A xem thử nha.

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

Lưu ý: Nên xem lại cách xưng hô nghe Bạn.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhờ sửa lại Code để lọc chữ và tự ̣động lọc

Chào các bạn,minh có đoạn Code muốn nhờ các bạn thêm cho hai phần nữa là:
1, lọc ̣được cả chữ,thêm điều kiện lọc ở cột mới,vídụ:cột F,H và K
2, tự động lọc,tức là khi ta nhập đủ điều kiện thì sẽ tự lọc.
Cảm ơn các bạn.
Mã:
Sub Loc()
  Sheet2.Range("A201:BK5201").ClearContents
  With HS.Range("B1").CurrentRegion
    .AutoFilter 2, ">=" & CDbl(SL.[A2]), xlAnd, "<=" & CDbl(SL.[B2])
    .SpecialCells(12).Copy: Sheet2.Range("A200").PasteSpecial 3
    .AutoFilter
  End With
  Sheet3.Range("A201:BK5201").ClearContents
  With HS.Range("B1").CurrentRegion
    .AutoFilter 2, ">=" & CDbl(SL.[C2]), xlAnd, "<=" & CDbl(SL.[C2])
    .SpecialCells(12).Copy: Sheet3.Range("A200").PasteSpecial 3
    .AutoFilter
  End With
   SL.Range("A1").Select
End Sub
 
Upvote 0
Các Bạn cho mình hỏi đoạn code này mục đích làm gì

Sheets("P.1").Select: Range("E4:F220").Select
Selection.Copy
Windows("Consolidated workdone.xls").Activate
Sheets("P.1").Select: Cells(4, 9).Select
Lcolumn = Range("IV4").End(xlToLeft).Column
Selection.Select: Cells(4, Lcolumn + 4).PasteSpecial xlPasteValues


Mình mới học nên chưa hiểu được đoạn này. Xin cảm ơn
 
Upvote 0
Sheets("P.1").Select: Range("E4:F220").Select
Selection.Copy
Windows("Consolidated workdone.xls").Activate
Sheets("P.1").Select: Cells(4, 9).Select
Lcolumn = Range("IV4").End(xlToLeft).Column
Selection.Select: Cells(4, Lcolumn + 4).PasteSpecial xlPasteValues


Mình mới học nên chưa hiểu được đoạn này. Xin cảm ơn
Code này copy E4:F220 sheet "P.1" dán giá trị tại cell hàng thứ 4 cột Lcolumn+4 sheet P.1, cửa sổ file Consolidated workdone.xls
trong đó Lcolumn là cột cuối so với cells IV4 (tương đươngcon trỏ tại IV4 và nhấn tổ hợp Ctrl mũi tên sang trái)
 
Upvote 0
Cảm ơn bạn Viethoai, mình muốn biến Lcolumn là một "Biến động" tức là trong công thức trên, giá trị được gán sẽ được copy vào một ô mà mình mong muốn (do mình có rất nhiếu file dữ liệu, mình muốn dùng một công thức nhưng các phần dữ liễu khi gộp lại không bị copy đè lên nhau mà copy vào các ô lần lượt hoặc liên tiếp - chiều dọc hoặc ngang) vậy mình sẽ phải làm thế nào ah?

Làm thế nào để mình có thể chuyển một cột thành cột cuối so với IV4 được ah (mình để con trỏ ở cột IV, rồi ấn tổ hợp Ctrl + mũi tên sang trái thì mỗi lần ra một kết quả khác nhau)

Chân thành cảm ơn bạn
 
Upvote 0
PHP:
Sheets("P.1").Select: Range("E4:F220").Select
2  Selection.Copy
Windows("Consolidated workdone.xls").Activate
4 Sheets("P.1").Select: Cells(4, 9).Select
  Lcolumn = Range("IV4").End(xlToLeft).Column
6 Selection.Select: Cells(4, Lcolumn + 4).PasteSpecial xlPasteValues
Mình chưa hiểu được đoạn này
1a: Chọn trang "P.1" ( Kích hoạt trang 'P1' này)
1B: Chọn 1 vùng từ 'E4:F220'
2 Copy vùng chọn vô bộ nhớ trung gian;
3 Kích hoạt bảng tính 'C W.xls'
4a Kích hoạt trang "P.1" (của bảng tính đang được kích hoạt)
4b kích hoạt ô ở dòng 4, cột thứ 9;
5 Cột cuối có dữ liệu của dòng 4 đượcx đem gán vô biến Loolumn
6a Chọn ô đang kích hoạt (?)
6b Dán số liệu vố vùng có ô bắt đầu có toạ độ dòng là 4, cột cách cột lưu trong biến Loolumn 4 cột về fía fải
 
Upvote 0
Giải thích dùm em đoạn code:

Em có đoạn code sau đây, mấy anh giải thích giúp em ý nghĩa của từng dòng tính từ dòng màu đỏ.
Sub Test()
Dim Rng As Range, Cll As Range
Set Rng = Sheet7.Range(Sheet7.[A3], Sheet7.[A65536].End(xlUp))
Sheet7.[B:TK].ClearContents
For Each Cll In Sheet3.[1:1].SpecialCells(2, 23)
Set Rng = Rng.Offset(, 1)
Rng.Offset(-1)(1, 1).Value = Cll
Rng.FormulaR1C1 = "=VLOOKUP(RC1,Sheet3!C" & (Cll.Column - 1) & ":C" & Cll.Column & ",2,0)"
Rng.Value = Rng.Value
Next

End Sub
 
Upvote 0
Bạn thử tự tìm hiểu xem sao, với sự trợ giúp của MsgBox

Em có đoạn code sau đây, mấy anh giải thích giúp em ý nghĩa của từng dòng tính từ dòng màu đỏ.

PHP:
Sub Test()
 Dim Rng As Range, Cll As Range:        Dim GPE As Byte

 Set Rng = Sheet7.Range(Sheet7.[A3], Sheet7.[A65536].End(xlUp))
 Sheet7.[B:TK].ClearContents
 MsgBox Rng.Address, , Rng.Parent.Name  '<=|'
 For Each Cll In Sheet3.[1:1].SpecialCells(2, 23)
    Set Rng = Rng.Offset(, 1)
    GPE = GPE + 1
    Rng.Offset(-1)(1, 1).Value = Cll
    If GPE < 3 Then
        MsgBox Rng.Offset(-1)(1, 1).Address, , GPE      '<=|'
    End If
    Rng.FormulaR1C1 = "=VLOOKUP(RC1,Sheet3!C" & (Cll.Column - 1) & ":C" & Cll.Column & ",2,0)"
9 '    Rng.Value = Rng.Value '
 Next Cll
End Sub

Chú í nhỏ: mình đã vô hiệu hoá dòng lệnh mang số 9 để chúng ta thấy nội dung của công thức mà macro vừa ghép vô
 
Upvote 0
Em chào Anh!
Anh có thể giải thích rõ hơn về ý nghĩa của các dòng trong đoạn code mà em gởi được không ah. Thanks Anh!
 
Upvote 0
PHP:
Sub Test()
1 Dim Rng As Range, Cll As Range
    
 Set Rng = Sheet7.Range(Sheet7.[A3], Sheet7.[A65536].End(xlUp)) 
3      Sheet7.[B:TK].ClearContents
  For Each Cll In Sheet3.[1:1].SpecialCells(2, 23)
'
5   Set Rng = Rng.Offset(, 1)
     Rng.Offset(-1)(1, 1).Value = Cll
7   Rng.FormulaR1C1 = "=VLOOKUP(RC1,Sheet3!C" & (Cll.Column - 1) & ":C" & Cll.Column & ",2,0)"
              Rng.Value = Rng.Value
9      Next
'
End Sub
1: Khai báo 2 biến sẽ dùng trong macro
2: Lấy vùng từ ô [A3] đến ô cuối trong cột 'A' có dữ liệu thuộc trang tính Sheet7 gán vô biến đối tượng Rng đã khai báo;
3: Xoá dữ liệu từ cột 'B' đến cột 'TK' của trang tính này
4: Thiết lập vòng lập duyệt qua các ô không chứa công thức thuộc cột '1' của trang tính Sheet3
5: Lấy các ô bên fải liền kề với các ô đang trong biến Rng gán lại vô Rng
6: Ô trên ô đầu tiên trong Rng được gán trị hiện chứa trong ô đang duyệt (bỡi vòng lặp);
7: Nhập công thức của hàm VLOOPKUP() cho các ô của Rng
8: Biến các công thức vừa nhập thành các trị số
9: Kết thúc vòng lặp duyệt các ô thỏa;


Chúc mau tấn bộ!
 
Upvote 0
Mình có một vấn đề này muốn hỏi bạn.
Mình có một bảng excel gồm 2 sheet.
Sheet 1 có cột A, B, C
Sheet 2 có cột A, B, C
bây giờ mình làm thế nào để cột Ci của sheet 2 sẽ điền vào Cột C của sheet 1.
Ví dụ: ở sheet 1 cột A2 và cột B2 = cột A3 và B3 tương ứng của sheet 2 thì ô C2 của sheet 1 sẽ bằng ô C3 của sheet 2.
Bởi vì bảng excel của mình rất nhiều dòng, lên khoảng 60000 dòng nên dùng công thức thì sẽ mất rất nhiều time để xử lý kết quả.
mình mong bạn giúp đỡ hoặc bạn có một đoạn cod nào thì giupó mình với.
Ntg82vn@gmail.com
dt:09.3452.99.98
 
Upvote 0
Mình có một vấn đề này muốn hỏi bạn.
Mình có một bảng excel gồm 2 sheet.
Sheet 1 có cột A, B, C
Sheet 2 có cột A, B, C
bây giờ mình làm thế nào để cột Ci của sheet 2 sẽ điền vào Cột C của sheet 1.
Ví dụ: ở sheet 1 cột A2 và cột B2 = cột A3 và B3 tương ứng của sheet 2 thì ô C2 của sheet 1 sẽ bằng ô C3 của sheet 2.
Bởi vì bảng excel của mình rất nhiều dòng, lên khoảng 60000 dòng nên dùng công thức thì sẽ mất rất nhiều time để xử lý kết quả.
mình mong bạn giúp đỡ hoặc bạn có một đoạn cod nào thì giupó mình với.
Ntg82vn@gmail.com
dt:09.3452.99.98
Bài của bạn đã được giải quyết tại đây rồi:
http://www.giaiphapexcel.com/forum/...chạy-(Đưa-bài-dùm-1-bạn.)&p=312050#post312050
 
Upvote 0
Quái nhỉ, mới sáng nay thấy Ndu giải đáp xong, nếu kết quả không đáp ứng được thì phải nêu lý do chứ cứ Post bài mới thế này anh em cũng không biết bạn cần gì nữa.
 
Upvote 0
Xin chào các anh chị. Em đang mới chập chững học VBA về việc lập trình kết nối Excel với Autocad. Em có một bài muốn nhờ các anh chị giúp đỡ em về viết một chương trình VBA trong Autocad vẽ tự động một hình chữ nhật ( chiều dài cạnh tùy ý), tính toán đặc trưng hình học: diện tích, mô men tĩnh với các mép mặt cắt, mô men quán tính với trục trọng tâm và bằng kết nối VBA xuất các kết quả này sang một bảng Excel.
Em xin cảm ơn sự giúp đỡ của các anh chị.
[FONT=&quot]1. [/FONT][FONT=&quot][/FONT]
 
Upvote 0
Xin chào các anh chị. Em đang mới chập chững học VBA về việc lập trình kết nối Excel với Autocad. Em có một bài muốn nhờ các anh chị giúp đỡ em về viết một chương trình VBA trong Autocad vẽ tự động một hình chữ nhật ( chiều dài cạnh tùy ý), tính toán đặc trưng hình học: diện tích, mô men tĩnh với các mép mặt cắt, mô men quán tính với trục trọng tâm và bằng kết nối VBA xuất các kết quả này sang một bảng Excel.
Em xin cảm ơn sự giúp đỡ của các anh chị.
+ vào refedel chọn Microsoft Excel xxx object library ,(xxx là phiên bản excel của bạn)
[FONT=&quot]1. [/FONT]
Bạn xem thử xem thế nào? mình làm thử cho bạn trường hợp tính diện tích.
PHP:
Public a As Double
Public b As Double
Public c As Double
Public d As Double

Public Sub btntinh_Click()
 ' KIEM TRA NHAP DU LIEU TREN FORM
Dim ctr As Control
For Each ctr In Me.Controls
    If TypeOf ctr Is TextBox Then
        If Len(ctr.Text) = 0 Then
            MsgBox " Ban hay nhap du lieu di nhe " & ctr.Name
            ctr.SetFocus
            Exit Sub
        End If
    End If
Next
' KHAI BAO LUA CHON GOC TOA DO
Dim goctd(0 To 1) As Double
Dim gt As Variant
Me.Hide
'lua chon diem bat dau ve tren AutoCad
gt = ThisDrawing.Utility.GetPoint(, "CHON DIEM GOC TOA DO LA :")
goctd(0) = gt(0)
goctd(1) = gt(1)
' KHAI BAO VA VE MAT CAT
'Khai bao toa do ve:
       Dim point(0 To 9) As Double
   Dim vemc As AcadLWPolyline
'L?y du lieu ve :

a = txta.Value
b = txtb.Value
c = txtc.Value
d = txtd.Value
  ' Toado 1
         point(0) = goctd(0): point(1) = goctd(1)
           ' Toado 2
         point(2) = point(0) + a: point(3) = point(1)
          ' Toado 3
         point(4) = point(2): point(5) = point(3) + b
                 ' Toado 4
         point(6) = point(4) - a: point(7) = point(5)
                  ' Toado 5
         point(8) = point(0): point(9) = point(1)
'Tinh dien tich chu nhat :
Dim dt As Double

Set Layer = ThisDrawing.Layers.Add("netdam")
  ThisDrawing.ActiveLayer = Layer
  Set vemc = ThisDrawing.ModelSpace.AddLightWeightPolyline(point)
End Sub

'''''''''ket noi sang excel:

 Sub CommandButton1_Click()
'''''''''
a = txta.Value
b = txtb.Value
c = txtc.Value
d = txtd.Value
dt = a * b
Me.lblkq = dt
Dim app As Excel.Application
On Error Resume Next
Set app = GetObject(, "Excel.Application")
If Err <> 0 Then
Err.Clear
Set app = CreateObject("excel.application")
End If
''''''''''''''''''''''''''''''''''''
Dim WBook As Workbook, WSheet As Worksheet
Set WBook = app.Workbooks.Add
Set WSheet = WBook.Worksheets(1)
    Range("A1").Value = c
    Range("B1").Value = d
    Range("C1").Value = dt
app.Visible = True
End Sub
'Còn các truong hợp tính Jx,Jy,... cái này chắc kỹ sư xây dựng ko khó để làm nhỉ? Cố gắng nhá.

PM:liệu có đồng môn với mình ko nhỉ?hihi
 

File đính kèm

  • aa.rar
    12 KB · Đọc: 20
Lần chỉnh sửa cuối:
Upvote 0
Chào các anh chị,giải thích giùm em ý nghĩa của lệnh này
=R[-1]C[10]+RC[-2]-RC[-1]
Cảm ơn nhiều,em đang cần gấp
 
Upvote 0
Bạn lấy 1 trang tính trắng &

Nhập 20 số liệu bật kỳ vô "I1:J10" & chạy macro sau để hình dung sự việc

PHP:
Option Explicit
Sub CongThuc()
 Dim Cls As Range
 For Each Cls In [K3:K5]
    Cls.FormulaR1C1 = "=R[-1]C[10]+RC[-2]-RC[-1]"
 Next Cls
End Sub
 
Upvote 0
Bạn xem thử xem thế nào? mình làm thử cho bạn trường hợp tính diện tích.
Cảm ơn anh Khoa Vũ nhiều ạ. em mới học cái này nên cũng không biết nhiều, mong anh và các anh chị trong diễn đàn giúp đỡ. Em học ĐH Giao thông năm thứ 4, chắc là cũng cùng đồng môn với anh ạ. :D
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn xem thử xem thế nào? mình làm thử cho bạn trường hợp tính diện tích.
Anh ơi em đã thử làm lại bài của anh thêm phần tính mô men. Nhưng anh cho em hỏi thêm là làm sao để hiện được kết quả phần tính mô men ngay khi click ( mà ko phải nhìn sang bảng excel) như phần tính diện tích của anh. Và em hỏi thêm là sao anh lại cho phần giá trị c và d vào để làm gì ạ. Em cảm ơn anh.
Bài em sửa đây ạ: http://www.mediafire.com/?4hd0333na3vbc9t
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Anh ơi em đã thử làm lại bài của anh thêm phần tính mô men. Nhưng anh cho em hỏi thêm là làm sao để hiện được kết quả phần tính mô men ngay khi click ( mà ko phải nhìn sang bảng excel) như phần tính diện tích của anh. Và em hỏi thêm là sao anh lại cho phần giá trị c và d vào để làm gì ạ. Em cảm ơn anh.
Bài em sửa đây ạ: http://www.mediafire.com/?4hd0333na3vbc9t
Bạn xem trong file đính kèm nhé.
- Mình nghĩ bạn nên phát triển tổng quát một mặt cắt dầm bất kỳ hay hơn.
- Giá trị c,d là thừa trong file mình gửi lên ban đầu.
Pm: Mình cũng là SV trường GT ra, hơn bạn hai khóa. Chắc SV tự động hóa thiết kế cầu đường à?
 

File đính kèm

  • xuantruong.rar
    11.4 KB · Đọc: 15
Lần chỉnh sửa cuối:
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