2016-11-09 37 views
0
Private Sub Worksheet_SelectionChange(ByVal Target As Range)  
Dim CustNumber As String  
    Dim CustName As String  
    Dim CompanyName As String  
    Dim CustPhoneNumb As String  
    Dim i As Long  
    CustNumber = Worksheets("OrderInvoice").Range("C10").Value  
    Sheets("CustomerList").Select 
    FoundDatails = False  
    i = 1  
    For i = 1 To 100  
    Cells(i, 1).Select  
    If CustNumber = Trim(Cells(i, 1)) Then  
     CustName = Trim(Cells(i, 2))  
     CompanyName = Trim(Cells(i, 3))  
     CustPhoneNumb = Trim(Cells(i, 4))  
     FoundDatails = True  
     Exit For  
    Else  
     i = i  
    End If  
    Next  
    Sheets("OrderInvoice").Select  
    Range("C11:F11") = CustName  
    Range("I11:J11") = CustPhoneNumb  
    Range("C12:J12") = CompanyName  
End Sub 
+0

我會建議在代碼中添加一些錯誤陷阱來查看錯誤實際是什麼。您還需要確保您的更改事件實際上正在觸發。 –

+0

抱歉,這是新的在vacinity –

+0

什麼是錯誤? – Vegard

回答

0

有很多可能的答案。最有可能的是,你應該改變:

Cells(i, 1).SelectSheets("CustomerList").Cells(i, 1).Select

其他的 - 檢查你是否有範圍的變量值和表是否存在爲命名。此外,在頂部使用Option Explicit以確保您編寫一個更好的代碼。

+0

我如何編碼vba填充我的表單從我的數據在另一個工作表中的列表選擇? –

+0

嗨。對於這一個,我需要VBA代碼和屏幕截圖,以及有關您正在使用的列表名稱的解釋。這聽起來像是另一個問題,所以最好單獨提問。請記住 - 明智地設置代碼的格式,在計算器中使用Option Explicit和Ctrl + K。請享用! – Vityata