nhờ giải thích hộ code (1 người xem)

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

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

anh1988

Thành viên mới
Tham gia
16/3/10
Bài viết
16
Được thích
0
Dim MyArray(8200, 2)
Dim mindext As Long
Dim textdongia As String
Dim texttimma As String
Private Sub ListView1_DblClick()
mindext = ListView1.SelectedItem.Index
Call Tramadongia
'Application.ActiveCell = ListBox1.List(ListBox1.ListIndex)
Unload Me
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
mindext = ListView1.SelectedItem.Index
'texttimma = Trim(redongia(mindext).madongia)
textdongia = Trim(redongiaLocks(mindext).madongia) & " : " & Trim(redongiaLocks(mindext).tencongviec) & " : DVT [" & Trim(redongiaLocks(mindext).donvitinh) & "] : GVL [" & Format(redongiaLocks(mindext).giavatlieu, "#00") & "] : GNC [" & Format(redongiaLocks(mindext).gianhancong, "#00") & "] : MTC [" & Format(redongiaLocks(mindext).giamaythicong, "#00") & "]"
'Textdienta.Text = Trim(redongia(mindext + 1).madongia) '& " : " & Trim(redongia(mindext + 1).tencongviec) & " : DVT [" & Trim(redongia(mindext + 1).donvitinh) & "] : GVL [" & Format(redongia(mindext + 1).giavatlieu, "#00") & "] : GNC [" & Format(redongia(mindext + 1).gianhancong, "#00") & "] : MTC [" & Format(redongia(mindext + 1).giamaythicong, "#00") & "]"
Textdienta.text = textdongia
'MsgBox Item.ListSubItems(1).Text
End Sub
Private Sub medit_Click()
MsgBox "PhÇn nµy ch­a cËp nhËt", vbOKOnly, "Th«ng B¸o"
End Sub
Private Sub mOK_Click()
Call Tramadongia
Unload Me
End Sub
Private Sub mthoat_Click()
Unload Me
End Sub
Private Sub Textdienta_Change()
End Sub
Private Sub TTimma_Change()
Dim demkytu As Integer
demkytu = Len(TTimma.text)
For I = 1 To countdgloc 'tkiem.ListBox1.ListCount - 1
If UCase(Left(redongiaLocks(I).madongia, demkytu)) = UCase(TTimma.text) Then
Ftkiemlocks.ListView1.ListItems(I).Selected = True
Ftkiemlocks.ListView1.SelectedItem.EnsureVisible
'TTimma.SetFocus
'Gan dien ta
mindext = ListView1.SelectedItem.Index
'texttimma = Trim(redongia(mindext).madongia)
textdongia = Trim(redongiaLocks(mindext).madongia) & " : " & Trim(redongiaLocks(mindext).tencongviec) & " : DVT [" & Trim(redongiaLocks(mindext).donvitinh) & "] : GVL [" & Format(redongiaLocks(mindext).giavatlieu, "#00") & "] : GNC [" & Format(redongiaLocks(mindext).gianhancong, "#00") & "] : MTC [" & Format(redongiaLocks(mindext).giamaythicong, "#00") & "]"
'Textdienta.Text = Trim(redongia(mindext + 1).madongia) '& " : " & Trim(redongia(mindext + 1).tencongviec) & " : DVT [" & Trim(redongia(mindext + 1).donvitinh) & "] : GVL [" & Format(redongia(mindext + 1).giavatlieu, "#00") & "] : GNC [" & Format(redongia(mindext + 1).gianhancong, "#00") & "] : MTC [" & Format(redongia(mindext + 1).giamaythicong, "#00") & "]"
Textdienta.text = textdongia
'MsgBox Item.ListSubItems(1).Text
Exit For
End If
Next I
End Sub
Private Sub UserForm_Activate()
'MsgBox Sheets("dongia").Cells(6, 2), vbOKOnly
'ListBox1.Clear
'ListBox1.Column(1).AddItem Sheets("dongia").Cells(6, 1), 0
'ListBox1.Column(2).AddItem Sheets("dongia").Cells(6, 2), 0
'ListBox1.ColumnCount = 3
'ListBox1.List(1, 1) = "yghghgh"
'ListBox1.Column() = "hghghgh" 'Sheets("dongia").Cells(6, 2)
End Sub
Private Sub UserForm_Initialize()
For I = 1 To countdgloc
ListView1.ListItems.Add(I) = Trim(redongiaLocks(I).madongia)


ListView1.ListItems(I).ListSubItems.Add(1) = Trim(redongiaLocks(I).tencongviec)
ListView1.ListItems(I).ListSubItems.Add(2) = Trim(redongiaLocks(I).donvitinh)
Next
TTimma.SetFocus
' ListBox1.ColumnCount = 2
' ListBox1.ColumnWidths = 52

'Load integer values into first column of MyArray
' For i = 1 To countdg
' MyArray(i - 1, 0) = Trim(redongia(i).madongia)
' MyArray(i - 1, 1) = Trim(redongia(i).tencongviec)


' Next i


' ListBox1.List() = MyArray


'ListBox1.SetFocus
'ListBox1.ListIndex = 1
End Sub
Sub Tramadongia()
Dim Hang, Cot As Long
mindext = ListView1.SelectedItem.Index
Hang = GHang
'Cot = Application.ActiveCell.Column
Range("Y" & Hang) = 1
Application.Cells(Hang, 3) = Trim(redongiaLocks(mindext).madinhmuc)
Application.Cells(Hang, 4) = Trim(redongiaLocks(mindext).madongia)
Application.Cells(Hang, 5) = Trim(redongiaLocks(mindext).tencongviec)
Application.Cells(Hang, 6) = Trim(redongiaLocks(mindext).donvitinh)
Application.Cells(Hang, 8) = redongiaLocks(mindext).giavatlieu
Application.Cells(Hang, 9) = redongiaLocks(mindext).gianhancong
Application.Cells(Hang, 10) = redongiaLocks(mindext).giamaythicong
Application.Cells(Hang, 14).Formula = "=((H" & Hang & "*K" & Hang & "*Config!$C$5+I" & Hang & "*L" & Hang & "*Config!$D$13*Config!$C$6*Config!$D$10+J" & Hang & "*M" & Hang & "*Config!$C$7))*(" & "Config!$D$11)"
Application.Cells(Hang, 15).Formula = "=G" & Hang & "*N" & Hang
'Application.Cells(Hang, 12).Formula = "=G" & Hang & "*H" & Hang
'Application.Cells(Hang, 14).Formula = "=G" & Hang & "*J" & Hang
'Application.Cells(Hang, 15).Formula = "=G" & Hang & "*K" & Hang
Range("Y" & Hang) = ""
'Di chuyen con tro cells
'Range("D" & Hang + 1).Select
End Sub





code này để tra mã dự toán trên excel nhưng chỉ chạy trên máy của em còn máy khác ko chạy dc
các cao thủ giúp hộ xem có sai xót chỗ nào ko
code này nằm trong form tra mã đơn giá
 
chắc ai ngồi đọc từng dòng là người đó giỏi và kiên trì lắm, đã không có file kèm theo rồi mà viết như vậy thì bó tay
Thứ nhất không có dữ liệu test
thứ 2 không thấy rõ từng function
......
 
Upvote 0
Vì không có file để xác định đúng sai nên không thể kiểm tra cho bạn lỗi chỗ nào, tuy nhiên tôi cũng đề nghị bạn với các dòng code này:

Range("Y" & Hang) = 1
Application.Cells(Hang, 3) = Trim(redongiaLocks(mindext).madinhmuc)

Trước hết bạn dùng Application.Cells, không sai, nhưng mạo hiểm, nếu như cái file của bạn chỉ với 1 sheet duy nhất thì không nói gì nữa, nhưng với nhiều sheet sẽ như thế nào? Nếu may mắn khi code chạy ngay trên sheet đó, tức sheet đó đang được Active thì không sao, nhưng nếu sheet hiện hành là sheet khác sẽ phát sinh ra lỗi tham chiếu sai.

Bạn thử làm cách này sẽ nhanh hơn và tham chiếu đúng với tên sheet bạn cần làm:

PHP:
With Sheets("TenSheet")
    .Range("Y" & Hang) = 1
    .Cells(Hang, 3) = Trim(redongiaLocks(mindext).madinhmuc)
    .Cells(Hang, 4) = Trim(redongiaLocks(mindext).madongia)
    .Cells(Hang, 5) = Trim(redongiaLocks(mindext).tencongviec)
    .Cells(Hang, 6) = Trim(redongiaLocks(mindext).donvitinh)
    .Cells(Hang, 8) = redongiaLocks(mindext).giavatlieu
    .Cells(Hang, 9) = redongiaLocks(mindext).gianhancong
    .Cells(Hang, 10) = redongiaLocks(mindext).giamaythicong
    .Cells(Hang, 14).Formula = "=((H" & Hang & "*K" & Hang & "*Config!$C$5+I" & Hang & "*L" & Hang & "*Config!$D$13*Config!$C$6*Config!$D$10+J" & Hang & "*M" & Hang & "*Config!$C$7"
End With
 
Upvote 0
Web KT

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

Back
Top Bottom