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:
Ý tôi là muốn cột B = cột A *1000 thày ah, tôi sửa
PHP:
Arr(j).Formula = "=Rng(" & i & ").Address(0,0)*1000"

thành

PHP:
Arr(j).Formula = "=RC[-1]*1000"
thì nó chạy ổn

Nhưng tôi thắc mắc là tại sao viết như cách trên nó lại không được.
Phần tử mãng không có thuộc tính nên bạn chỉ sử dụng
PHP:
Arr(j) = "=RC[-1]*1000"
 
Upvote 0
(/ậy bạn thử nghiệm với macro sinh đôi với nó như vầy xem sao:
PHP:
Sub GPE()
    Dim Rng As Range, Arr As Range, i As Long, j As Long
    
    Set Rng = Range("A1:A6"):       Set Arr = Range("B1:B6")
    For i = 1 To Rng.Count
        j = j + 1
        MsgBox Rng(i).Address(0, 0)
'        Arr(j).Formula = "=Rng(" & i & ").Address(0,0)*1000"'
    Next
End Sub
 
Upvote 0
To Viehoai: Code tôi viết là Range đấy chứ có phải mảng đâu, bác xem lại dùm.

To ChanhTQ@: Code của thày viết nó hiện ra địa chỉ Msgbox, thế tại sao Code của tôi không chạy? Phiền thày chỉ ra chỗ sai dùm.
 
Upvote 0
Không hiểu sao cứ rời bài tập mẫu do các thày trên mạng ra, những bài tôi tự viết nhiều bài gặp lỗi

PHP:
Sub tt()
    Dim Rng As Range, Arr As Range, i As Long, j As Long
    Set Rng = Range("A1:A6")
    Set Arr = Range("B1:B6")
    For i = 1 To Rng.Count
        j = j + 1
        Arr(j).Formula = "=Rng(" & i & ").Address(0,0)*1000"
    Next
End Sub

Xin nhờ mọi người sửa giúp, xin chỉ giúp tôi sai kiến thức ở điểm nào.
Trân trọng cảm ơn
Vầy mới đúng đồng chí ơi:
Arr(j).Formula = "=" & Rng(i).Address(0, 0) & "*1000"
 
Upvote 0
Thành phần Rng(i).Address(0, 0) nó là chuỗi cơ mà
Trong đó chỉ có Rng và i là biến thôi, tại sao cả cụm đó không chịu sự quản lý của " " ?

Đáng lý ra phải là thế này chứ nhỉ:

PHP:
 Arr(j).Formula = "="& Rng & "(" & i").Address(0, 0) *1000"

Chỗ này tôi hay hiểu sai nhất, xin thày chỉ giúp
 
Upvote 0
Thành phần Rng(i).Address(0, 0) nó là chuỗi cơ mà
Trong đó chỉ có Rng và i là biến thôi, tại sao cả cụm đó không chịu sự quản lý của " " ?

Đáng lý ra phải là thế này chứ nhỉ:

PHP:
 Arr(j).Formula = "="& Rng & "(" & i").Address(0, 0) *1000"

Chỗ này tôi hay hiểu sai nhất, xin thày chỉ giúp
Ráp từ từ vào nhé:
- Khi i = 1 thì Rng(i).Address(0,0) = "A1"
- Thay vào đoạn "=" & Rng(i).Address(0, 0) & "*1000" có phải sẽ thành "=" & "A1" & "*1000" hay không?
- Kết quả cuối cùng có phải là "=A1*1000" hay không?
- Chuổi này nếu cho vào cell B1, tự nhiên nó trở thành công thức thôi
Quá đơn giản như... đang giởn
Ẹc... Ẹc...
 
Upvote 0
Option Explicit
Dim endR&, fD&, eD&, i&, s&, k&
Dim sTK$, sMaKH$
Dim SoDu As Double
Dim Arr(), ArrKQ()
Const cNg = 2: Const cTkNo = 6: Const cTkCo = 7: Const cST = 8: Const cMaKH = 9
Sub TaoSoCT()
With Sheets("NKC")
.AutoFilterMode = False
endR = .Cells(65000, 1).End(3).Row
Arr = .Range("A9:I" & endR).Value
End With

With Sheets("SoCT")
.Rows("11:200").EntireRow.Hidden = False
.Range("A11:G200").ClearContents
.[F8] = 0: .[G8] = 0
'CLng la cau lenh chuyen doi du lieu sang kieu nguyen
fD = CLng(.[I4]): eD = CLng(.[I5])
sTK = CStr(.[D4]): sMaKH = CStr(.[D5])
End With

s = 0: SoDu = 0
ReDim ArrKQ(1 To 200, 1 To 7)
For i = 1 To UBound(Arr)
If Arr(i, cMaKH) = sMaKH Then
If CStr(Arr(i, cTkNo)) = sTK Or CStr(Arr(i, cTkCo)) = sTK Then
If CLng(Arr(i, cNg)) <= eD Then
Select Case fD
Case Is > CLng(Arr(i, cNg)) 'Sodu
Select Case sTK
Case Is = CStr(Arr(i, cTkNo))
SoDu = SoDu + Arr(i, cST)
Case Is = CStr(Arr(i, cTkCo))
SoDu = SoDu - Arr(i, cST)
End Select
Case Is <= CLng(Arr(i, cNg)) 'PS
s = s + 1
For k = 1 To 4
ArrKQ(s, k) = Arr(i, k + 1)
Next k
Select Case sTK
Case Is = CStr(Arr(i, cTkNo)) 'PSNo
ArrKQ(s, 5) = Arr(i, cTkCo)
ArrKQ(s, 6) = Arr(i, cST) 'ST PS No
Case Is = CStr(Arr(i, cTkCo)) 'PSCo
ArrKQ(s, 5) = Arr(i, cTkNo)
ArrKQ(s, 7) = Arr(i, cST) 'STPS Co
End Select
End Select
End If
End If
End If
Next i
If s = 0 Then
MsgBox "Kg co"
GoTo Exit_Sub
End If
With Sheets("SoCT")
.Rows(s + 12 & ":200").EntireRow.Hidden = True
If SoDu > 0 Then
.[F8] = SoDu: .[G8] = 0
Else
.[G8] = -SoDu: .[F8] = 0
End If
'.Range("A11:G200").ClearContents
.[A11].Resize(s, 7) = ArrKQ
End With
Exit_Sub:
Erase Arr(), ArrKQ()
End Sub
1. Const cNg = 2: Const cTkNo = 6: Const cTkCo = 7: Const cST = 8: Const cMaKH = 9 - tại sao cái này có có nhiều giá trị 2,6,7 mình xem tài liệu nhưng chưa hiểu lắm
2. If Arr(i, cMaKH) = sMaKH Then câu lệnh này mình chưa hiểu các bạn giải đáp giúp
3. Mình chưa hiểu cái này Arr(i, cTkNo) ; (Arr(i, cNg))
If CStr(Arr(i, cTkNo)) = sTK Or CStr(Arr(i, cTkCo)) = sTK Then
If CLng(Arr(i, cNg)) <= eD Then
Select Case fD
Case Is > CLng(Arr(i, cNg)) 'Sodu
Select Case sTK
Case Is = CStr(Arr(i, cTkNo))
SoDu = SoDu + Arr(i, cST)
Case Is = CStr(Arr(i, cTkCo))
SoDu = SoDu - Arr(i, cST)
End Select
Minh moi tap xem cac cau lenh vba nen nhieu cho khong hieu co gi cac ban giup minh
 
Upvote 0
Nhờ thích code trong file excell?

mình không thể chạy được code macro mà mình đã lập trình! mình đã suy nghi mãi mà không thể hiểu ra. Có một người bạn cho mình code này, mình sử dụng code này cho file excel của mình thì lại không chạy được? rất mong mọi người giúp đỡ. Mục tiêu của mình là: mình muốn lọc tự động dữ liệu, với mỗi phần tử frame có 5 mặt cắt; mình muón lọc ra 3 vị trí: đầu + giữa + cuối. và tự động xóa dữ liệu. HÃY GIẢI THÍCH CODE ĐÓ GIÚP MÌNH VÀ SỬ DỤNG NÓ NTN???
 

File đính kèm

  • FILTERBEAM.xlsx
    16 KB · Đọc: 5
Upvote 0
Nhờ giải thích code trong file excell?

mình không thể chạy được code macro mà mình đã lập trình! mình đã suy nghi mãi mà không thể hiểu ra. Có một người bạn cho mình code này, mình sử dụng code này cho file excel của mình thì lại không chạy được? rất mong mọi người giúp đỡ. Mục tiêu của mình là: mình muốn lọc tự động dữ liệu, với mỗi phần tử frame có 5 mặt cắt; mình muón lọc ra 3 vị trí: đầu + giữa + cuối. và tự động xóa dữ liệu. HÃY GIẢI THÍCH CODE ĐÓ GIÚP MÌNH VÀ SỬ DỤNG NÓ NTN???
 

File đính kèm

  • FILTERBEAM.xlsx
    16 KB · Đọc: 6
Upvote 0
mình không thể chạy được code macro mà mình đã lập trình! mình đã suy nghi mãi mà không thể hiểu ra. Có một người bạn cho mình code này, mình sử dụng code này cho file excel của mình thì lại không chạy được? rất mong mọi người giúp đỡ. Mục tiêu của mình là: mình muốn lọc tự động dữ liệu, với mỗi phần tử frame có 5 mặt cắt; mình muón lọc ra 3 vị trí: đầu + giữa + cuối. và tự động xóa dữ liệu. HÃY GIẢI THÍCH CODE ĐÓ GIÚP MÌNH VÀ SỬ DỤNG NÓ NTN???
Chưa mở file cũng biết chắc file của bạn chẳng có tí code nào cả, lấy gì mà test
Bạn muốn dùng code trên Excel 2007 thì phải lưu nó dưới định dạng xlsm ---> Nếu lưu bằng xlsx thì code sẽ tự động bị xóa sạch
 
Upvote 0
Nhờ giải thích code lọc dữ liệu???

Giúp e giải thích cái code này cái mọi người??? Dùng nó như thế nào mọi người? E mới nghiên cứu về lập trình nên không rành lắm.
Em muốn dùng code này để lọc dữ liệu và xóa dữ liệu như e đã nói rõ hồi nảy!
 

File đính kèm

  • FILTERBEAM.rar
    22.7 KB · Đọc: 27
Lần chỉnh sửa cuối:
Upvote 0
Nhờ mọi người giúp dùm mình vấn đề này được không. Số là công việc của mình cần copy thông tin từ Excel sang phần phần mềm quản lý công việc. Có nhiều cell lưu nhiều thông tin khác nhau. Và mình cứ phải copy và paste qua lại giữa Excel và phần mềm. Mình muốn làm nhanh. Mà mỗi lần muốn copy từ Excel thì phải db click, tô đen, Ctrl+c (hoặc F2, tô đen, Ctrl+c) mất nhiều bước.Công việc của mình cần làm nhanh. mình muốn trong file Excel của mình, khi mình clik vô cell nào thì tự động những nội dung trong cell sẽ được tô đen. Hoặc tốt hơn nữa là tự động copy nội dung trong cell đó luôn. Được không ạ? Mong mọi người giúp dùm mình nhé
 
Upvote 0
Giúp e giải thích cái code này cái mọi người??? Dùng nó như thế nào mọi người? E mới nghiên cứu về lập trình nên không rành lắm.
Em muốn dùng code này để lọc dữ liệu và xóa dữ liệu như e đã nói rõ hồi nảy!
Bạn lấy code ở đâu thì phải hiểu code nó làm cái gì chứ, sao lại hỏi người khác
Hay là hỏi ngược lại: Bạn muốn làm gì trên file này? Mô tả vấn đề rồi mọi người giúp bạn
(code của bạn tôi chẳng chạy được gì, bấm 1 phát treo máy luôn)
 
Upvote 0
Mình cũng đã nói rõ. Một người bạn cho mình để tìm hiểu.
Mục đích mình muốn là tự động lấy ra 3 giá trị: đầu + giữa + cuối ứng với mỗi loại ouputcase.
tức là mình muốn tạo một nút macro để lọc dữ liệu và một nút macro tự động xóa dữ liệu.
giống như file mình up lên. Nhưng khi mình dùng thi không dùng được. bị treo!
 
Upvote 0
Mình cũng đã nói rõ. Một người bạn cho mình để tìm hiểu.
Mục đích mình muốn là tự động lấy ra 3 giá trị: đầu + giữa + cuối ứng với mỗi loại ouputcase.
tức là mình muốn tạo một nút macro để lọc dữ liệu và một nút macro tự động xóa dữ liệu.
giống như file mình up lên. Nhưng khi mình dùng thi không dùng được. bị treo!
Tạm thời, bạn nên.....quên cái code trong bài của bạn đi
Bi giờ, vói dữ liệu trong bài, bạn muốn làm gì với nó, công dụng của 2 cái nút là gì ?
tự động lấy ra 3 giá trị: đầu + giữa + cuối ứng với mỗi loại ouputcase.
3 giá trị lấy ở cột nào, kết quả ra sao, kết quả đặt ở đâu ( bạn tạo nháp bảng kết quả, giải thích kỹ kỹ tý tẹo)
Nếu hiểu được đề bài thì sẽ nhanh có câu trả lời thôi
Thân
 
Upvote 0
Á ngộ! Tưởng một mình mình bị treo....
Híc!
 
Upvote 0
Nhờ mọi người giúp dùm mình vấn đề này được không. Số là công việc của mình cần copy thông tin từ Excel sang phần phần mềm quản lý công việc. Có nhiều cell lưu nhiều thông tin khác nhau. Và mình cứ phải copy và paste qua lại giữa Excel và phần mềm. Mình muốn làm nhanh. Mà mỗi lần muốn copy từ Excel thì phải db click, tô đen, Ctrl+c (hoặc F2, tô đen, Ctrl+c) mất nhiều bước.Công việc của mình cần làm nhanh. mình muốn trong file Excel của mình, khi mình clik vô cell nào thì tự động những nội dung trong cell sẽ được tô đen. Hoặc tốt hơn nữa là tự động copy nội dung trong cell đó luôn. Được không ạ? Mong mọi người giúp dùm mình nhé

Có bạn nào giúp mình vụ này với
 
Upvote 0
Nhờ mọi người giúp dùm mình vấn đề này được không. Số là công việc của mình cần copy thông tin từ Excel sang phần phần mềm quản lý công việc. Có nhiều cell lưu nhiều thông tin khác nhau. Và mình cứ phải copy và paste qua lại giữa Excel và phần mềm. Mình muốn làm nhanh. Mà mỗi lần muốn copy từ Excel thì phải db click, tô đen, Ctrl+c (hoặc F2, tô đen, Ctrl+c) mất nhiều bước.Công việc của mình cần làm nhanh. mình muốn trong file Excel của mình, khi mình clik vô cell nào thì tự động những nội dung trong cell sẽ được tô đen. Hoặc tốt hơn nữa là tự động copy nội dung trong cell đó luôn. Được không ạ? Mong mọi người giúp dùm mình nhé
Bạn dùng code này thử xem:
PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim MyData As DataObject
Set MyData = New DataObject
MyData.SetText ActiveCell.Value
MyData.PutInClipboard
End Sub
 
Upvote 0
PHP:
Public Function DK() As Boolean
  If (TxtA <= 0 Or TxtB > 100) Or (TxtB <= 0 Or TxtB > 100) Or (TxtC <= 0 Or TxtC > 100) Then 
    MsgBox "Mot trong cac gia tri chi nam trong khoang 0-100", vbApplicationModal
    TxtA = 0: TxtB = 0: TxtC = 0
    Dieukien = False
Else
    Dieukien = True
End If
End Function


PHP:
Private Sub CmbTH_Click()
If DK() = False Then
    Exit Sub
End if
.........


Trong đây
TxtA,TxtB,TxtC là tên textbox.


Nhờ anh, chị kiểm tra giúp xem trong đoạn code trên bị lỗi gì, mà khi em nhập dữ liệu vào txtA, dù không nằm trong khoảng rằng buộc từ 0--->100 Cũng xuất hiện Msgbox báo lỗ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