cùng một sub sao máy 1 chạy tốt, máy 2 chạy ko được? (1 người xem)

Liên hệ QC

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

Tường_Vi

Thành viên tiêu biểu
Tham gia
19/4/10
Bài viết
482
Được thích
121
Nghề nghiệp
Luôn tìm kiếm một vị trí tốt hơn
Em có một sub (dài dài) test máy 1 chạy tốt.
Tại máy 2..lúc được lúc không?

Nếu không chạy được nó cũng chẳng báo lỗi gì cả
Em không biết sao

PHP:
If Len([B9]) < 13 Then: MsgBox "Kiem tra lai ten van don": Exit Sub
' Code Kiem Tra so luong Chi
If Right([B7], 3) = "CSL" And [B12] * 1 + [C12] * 1 + [D12] * 1 <> [E12] * 1 Then: MsgBox "So Luong Chi chua dung": Exit Sub
If [c22] = 0 Then: MsgBox "So tien chua dung": Exit Sub
' Code kiem tra xem co hach toan nham Khach hang
            Dim Rng1 As Range ' vung ID Code tim thay
        
            
            With Sheet1.Range(Sheet1.[J5], Sheet1.[J65500].End(xlUp))
                Set Rng1 = .Find(What:=[B4], LookIn:=xlFormulas, LookAt:=xlWhole)
                If Rng1 Is Nothing Then: Exit Sub ' Neu khong tim thay IDcode -> lan dau tien hach toan
                If Not Rng1 Is Nothing Then
                    Dim Rnghead As Range
                    Dim Rnghead_ID As Range
                    Dim RngBill As Range
                    Dim RngIDcode As Range
                    
                    Set Rnghead = Sheet1.Range(Sheet1.[G5], Sheet1.[G65500].End(xlUp))
                    Set RngBill = Rnghead.Offset(0, 1)
                    Set RngIDcode = Rnghead.Offset(0, 3)
                    Set Rnghead_ID = Union(Rnghead, Rng1)
                    'Dim solan As Long ' so lan hach toan cung noi dung cua 1 cty
                    'Dim solan1 As Long ' dem Bill hach toan cung noi dung
                    solan = Dem(Rnghead, [A21], RngIDcode, [B4]) ' so lan hach toan cung noi dung cua 1 cty
                    solan1 = Dem(Rnghead, [A21], RngBill, [B9]) ' Dem so bill hach toan cung noi dung
                    
                    If solan > 0 And solan1 = 0 Then
                        a = MsgBox("Day la Bill thu " & solan + 1 & " cua Cty nay" & Chr(13) & " Hach toan cung noi dung - Ban chac Minh da dung?", vbCritical + vbYesNo, "Cung noi dung hach toan")
                            If a = vbNo Then: Exit Sub
                    End If
                    If solan > 0 And solan1 > 0 Then
                        MsgBox "Ban da hach toan noi dung nay roi": Exit Sub
                    End If
                End If
                
          End With

' code lay ty gia o F21
        Select Case [D5]
        Case "P"
        [F21] = 1
        Case "T"
        [F21] = TachSo([E1])
        End Select

' code thuc hien phan dien giai

    [B17].FormulaR1C1 = _
        "=R[-8]C&"" ""&R[-12]C&R[-11]C&R[-10]C[1]&"" ""&R[-1]C&R[-1]C[1]&R[-1]C[2]&R[-1]C[3]&R[-1]C[4]&R[-16]C[3]"
    [B17] = [B17]
    
    [B19].FormulaR1C1 = _
        "=R[-14]C&R[-13]C&R[-12]C[1]&"" ""&R[-3]C&R[-3]C[1]&R[-3]C[2]&R[-3]C[3]&R[-1]C&R[-3]C[4]&R[-18]C[3]"
    [B19] = [B19]
    
    [A21].FormulaR1C1 = _
        "=CHOOSE(IF(R[-16]C[3]=""P"",1,2),""KLV"",CHOOSE(IF(LEFT(R[-12]C[1],4)=""KLIS"",1,2),""KLPL"",IF(LEFT(R[-14]C[1],3)=""THC"",""KKKTHC"",""KKK"")))"
     [A21] = [A21]
End Sub
 
Bạn không nên dùng quá 2 câu lệnh trên 1 dòng lệnh;

Chỉ khi nào các câu lệnh quá ư là ngắn ta mới dùng như vầy:
PHP:
 jJ =1:                  Ww= jJ +2:              Zz = 4



Fân tích cùng nhau đoạn mã này xem sao nhe:


PHP:
If Len([B9]) < 13 Then: MsgBox "Kiem tra lai ten van don": Exit Sub
' Code Kiem Tra so luong Chi'
If Right([B7], 3) = "CSL" And [B12] * 1 + [C12] * 1 + [D12] * 1 <> [E12] * 1 Then: MsgBox "So Luong Chi chua dung": Exit Sub

Thực ra nên viết vầy:

PHP:
If Len([B9]) < 13 Then
  MsgBox "Kiem tra lai ten van don"
  Exit Sub

 '?? End If nằm đâu???'

' Code Kiem Tra so luong Chi'
If Right([B7], 3) = "CSL" And [B12] * 1 + [C12] * 1 + [D12] * 1 <> [E12] * 1 Then
         MsgBox "So Luong Chi chua dung": Exit Sub

Bạn viết như vậy nó mà biết báo lỗi mới là chuyện lạ!

Mình thành thật khuyên bạn hãy chân fương đi cái đã, Chỉ khi nào OK rồi thì biến hóa gì là chuyện của bạn!
 
Upvote 0
Cám ơn Thầy
Thực ra em vô cùng chân phương ..................vì không biết gì mà hi hi
 
Upvote 0
Theo mình hiểu ở đây 'Chân fương' không fải là:

PHP:
 1 If GPE = 1 Then HomNay = "Nhau " Else HomNay = "Khong Nhau"

2 If GPE =9 Then _
       NgayMai = "Hop Mat"

Mà fải là

PHP:
If GPE = 1 Then 
   HomNay = "Nhau " 
Else 
    HomNay = "Khong Nhau" 
End If

' Hay:'

If GPE =9 Then 
      NgayMai = "Hop Mat"
End If


Không fải là:

Mã:
 Rws =  [B65500].End(3).Offset(1).row

Mà nên là:

PHP:
 Rws =  [B65500].End(xlUp).Offset(1).row
 
Upvote 0
Web KT

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

Back
Top Bottom