2014-01-31 61 views
0

代碼背後的想法是,它應該查找客戶名稱,然後在一年中找到銷售水平,然後將所有數據粘貼到另一個表單中。對於工作表中的每個單元格(「xyz」)查詢

從以下行中獲取運行時錯誤「1004」應用程序定義或對象定義的錯誤。我在發現錯誤的地方標註了一行。

Sub Import_CustomerData() 

Dim strMonth As String 
Dim rngMonth As Range 

Dim DataImportColum As Integer 
Dim DataImportRow As Integer 

Dim strFirstCustomer As String 
Dim strSecondCustomer As String 
Dim strThirdCustomer As String 
Dim strFourthCustomer As String 
Dim strFifthCustomer As String 

Dim lngFirstCustomerSales As Long 
Dim lngSecondCustomerSales As Long 
Dim lngThirdCustomerSales As Long 
Dim lngFourthCustomerSales As Long 
Dim lngFifthCustomerSales As Long 
Dim lngTotalSales As Long 

Dim cell As Range 
Dim x As Integer 

'Finding Data for clients 
For Each cell In Worksheets("Data entry").Range("A1:A99") 

If cell.Value = "Customer Sales" Then 

    strFirstCustomer = cell.Offset(1, 0).Value 
    strSecondCustomer = cell.Offset(2, 0).Value 
    strThirdCustomer = cell.Offset(3, 0).Value 
    strFourthCustomer = cell.Offset(4, 0).Value 
    strFifthCustomer = cell.Offset(5, 0).Value 

End If 

Next 

'Extracting Data from Customer sheet 

***For Each cell In Worksheets("Client_Customer").Range("B83:86")*** 

'First Customer 
If cell.Value = strFirstCustomer Then 
    lngFirstCustomerSales = Val(cell.Offset(0, 1)) 
End If 

'Second Customer 
If cell.Value = strSecondCustomer Then 
    lngSecondCustomerSales = Val(cell.Offset(0, 1)) 
End If 

'Third Customer 
If cell.Value = strThirdCustomer Then 
    lngThirdCustomerSales = Val(cell.Offset(0, 1)) 
End If 

'Fourth Customer 
If cell.Value = strFourthCustomer Then 
    lngFourthCustomerSales = Val(cell.Offset(0, 1)) 
End If 

'Fifth Customer 
If cell.Value = gxdfg Then 
    lngFifthCustomerSales = Val(cell.Offset(0, 1)) 
End If 

'Total Customers Sales 
If cell.Value = "Total:" Then 
    lngTotalSales = Val(cell.Offset(0, 1)) 
End If 

Next 

'Importing it into Data Customer Monthly 2013 sheet. 

'Determing month of client system reports 
    strMonth = Sheets("Client_Customer").Range("B8").Value 

If strMonth = "" Then 

    frmEnter_month.Show 

Else 

    iLenMonth = Len(strMonth) 
     x = iLenMonth - 5 
      strLeftMonth = Left(strMonth, x) 

End If 

'To find Column of Customer imput 
For Each cell In Range("B4:M4") 

     If cell.Value = strLeftMonth Then 
      DataImportColumn = cell.Column 

     End If 

Next 

For Each cell In Worksheets("data customer monthly 2013").Range("A3:A9999") 

'First Customer 
If cell.Value = strFirstCustomer Then 
     DataImportRow = cell.Row 

** 2 ** lngFirstCustomerSales = Cells(DataImportRow, DataImportColumn).Offset(0, 2).Value ** 2 ** 
End If 

'Second Customer 
If cell.Value = strSecondCustomer Then 
     DataImportRow = cell.Row 

     lngSecondCustomerSales = Cells(DataImportRow, DataImportColumn).Offset(0, 2).Value 
End If 

'Third Customer 
If cell.Value = strThirdCustomer Then 
     DataImportRow = cell.Row 

     lngThirdCustomerSales = Cells(DataImportRow, DataImportColumn).Offset(0, 2).Value 
End If 

'Fourth customer 
If cell.Value = strFourthCustomer Then 
     DataImportRow = cell.Row 

    lngFourthCustomerSales = Cells(DataImportRow, DataImportColumn).Offset(0, 2).Value 
End If 

'Fifth Customer 
If cell.Value = strFifthCustomer Then 
     DataImportRow = cell.Row 

    lngFifthCustomerSales = Cells(DataImportRow, DataImportColumn).Offset(0, 2).Value 
End If 

'Total Sales 
If cell.Value = "Total Sales" Then 
     DataImportRow = cell.Row 

    lngTotalSales = Cells(48, DataImportColumn).Value 
End If 

Next 

DeleteClientSheets 

End Sub 

對不起,大量的代碼,但沒有人有任何建議?由於單元格已被定義爲範圍,因此無法找到任何有助於解釋問題的內容。

EDIT1:

第二個問題:Silenxor的輝煌的解決方案後,我得到的代碼就行具有以下指標:** 2 **

我得到的錯誤是一樣的第一錯誤。

回答

0

至於你的星號線

For Each cell In Worksheets("Client_Customer").Range("B83:86") 

嘗試

For Each cell In Worksheets("Client_Customer").Range("B83:B86") 
+0

這的確是這麼簡單。感謝Silenxor!但現在我有另一個問題。在上面的帖子中看到EDIT1。 – s0up2up

+0

你能發佈錯誤的詳細信息嗎?它可能是單元格(DataImportRow,DataImportColumn).Offset(0,2)的內容不是數字嗎?您試圖將它的值存儲到長類型的變量中 – Silenxor

+0

您可能想嘗試的另一件事是檢查DataImportRow和DataAImportColumn實際上在宏中的位置,因爲查看代碼,如果語句可能不成立在這種情況下,如果其中任一變量爲0,則會出錯,因爲您無法選擇單元格(0,0) – Silenxor

相關問題