2012-08-30 24 views
1

我需要爲大約150個產品創建計算,每個產品由大約50-60個子產品組成。根據子產品是從外部生產還是從外部購買,價格的計算方式會有所不同。本質上,我需要複製粘貼產品中包含的每個子產品的重量和價格,並確定其來源。VBA從工作簿中複製文件夾中的單元格值

我希望excel能夠查看以前在同一文件夾(所有不同的工作簿)中進行的計算,並且如果它在其中一個工作簿中找到單元格,那麼將重量,價格和源複製粘貼到當前打開的工作簿。我完全失去了如何比較細胞,如果找到匹配,然後將其複製到正確的位置。我相信.Find和.FindNext在這裏很有用,但我不完全確定如何使用它們。

下面是我的數據是如何構成的一個例子: enter image description here

這是我到目前爲止已經發現:

Sub RunCodeOnAllXLSFiles() 
      Dim lCount As Long 
      Dim wbResults As Workbook 
      Dim wbCodeBook As Workbook 


     Application.ScreenUpdating = False 
     Application.DisplayAlerts = False 
     Application.EnableEvents = False 

     On Error Resume Next 
      Set wbCodeBook = ThisWorkbook 
       With Application.FileSearch 
        .NewSearch 
        'Change path to suit 
        .LookIn = "C:\ahjualune\stuff" 
        .FileType = msoFileTypeExcelWorkbooks 
        'Optional filter with wildcard 
        .Filename = "*NAV*.xls*" 
      If .Execute > 0 Then 'Workbooks in folder 
       For lCount = 1 To .FoundFiles.Count 'Loop through all 
        'Open Workbook x and Set a Workbook variable to it 
        Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) 

        'DO YOUR CODE HERE 
        With ActiveSheet 
          For Each c In .Range("B2:B90").Cells 
    ' problematic place   If c.Value = Then 


            End If 
          Next c 
        End With 

        wbResults.Close SaveChanges:=False 
       Next lCount 
      End If 
    End With 
    On Error GoTo 0 
    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
    Application.EnableEvents = True 
    End Sub 

回答

0
  • 這是我的理解,從你的問題ü有150個產品。
  • 每個產品將有50到60個子產品。
  • 您將擁有每個子產品的重量和價格。根據該類子產品的套數,您將每套價格和套數相乘以找到該子產品的總價格。
  • 之後,您將添加所有子產品的價格,以找到一個產品的價格。

如果這個你正在尋找我有一個想法。

將所有主要產品類型放在一個工作簿的sheet1中。

從第二張紙開始,將每個產品副產品放在一張紙上。使用Excel表單公式來增加和增加價格。

記錄一個宏以將該子產品的價格複製到sheet1。

+0

感謝您的回覆。這正是我的目標。但是,我擁有大約8000多個子產品,無法以簡潔快捷的方式提取有關它們的所有必要數據。而且,並非所有人都包含重量和價格。所以我認爲最好的方法是分析所有以前的價格計算,儘可能多地複製粘貼子產品信息,然後手動找到其餘的產品信息,從而在完成每次新的價格計算後改進「數據庫」 。 – Ahjualune

0

存儲在一個變量

圖開出的價格爲當前行的源-add給一個變量

當源的變化把總計在列向右

也許使用像

range("A2").select 

dim sSource as string 
dim dPrice as decimal 
Dim dWeight as decimal 
dim dtotal as decimal 

Do Until ActiveCell = "" 
    sSource = ActiveCell.Offset(0,8).value 
    dprice = Activecell.offset(0,7).value 
    Activecell.Offset(1,0).Select 
    etc..... 
    when your source changes write out to a column to the right...or something like that 
Loop 

對不起,沒時間寫出來的完整代碼,你...但試圖讓你的道路上...

相關問題