1

我需要为大约 150 个产品创建计算,每个产品包含大约 50-60 个子产品。根据子产品是从外部来源生产还是购买,价格的计算方式会有所不同。本质上,我需要复制粘贴产品中包含的每个子产品的重量和价格,并确定来源是什么。

我希望 excel 查看以前在同一个文件夹(所有不同的工作簿)中进行的计算,如果它在其中一个工作簿中找到一个单元格,然后将重量、价格和来源复制粘贴到当前打开的工作簿中。我完全不知道如何比较单元格,如果找到匹配项,则将其复制到正确的位置。我相信 .Find 和 .FindNext 在这里可能很有用,但我不完全确定如何使用它们。

以下是我的数据结构的示例: 在此处输入图像描述

这就是我到目前为止发现的:

    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
4

2 回答 2

0

将源存储在变量中

找出当前行的价格 - 添加到变量

当源更改时,将总计放在右侧的列中

也许使用类似的东西

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 

抱歉,没时间为你写出完整的代码……但试图让你走上正轨……

于 2014-04-09T17:27:35.953 回答
0
  • 这是我从你的问题中了解到的,你有 150 种产品。
  • 每个产品将有 50 到 60 个子产品。
  • 您将获得每个子产品的重量和价格。根据您拥有的那种子产品的套数,您将每套价格和套数相乘以找到该子产品的总价。
  • 之后,您将添加所有子产品价格以找到一个产品价格。

如果这是您正在寻找的东西,我有一个想法。

将所有主要产品类型放在一个工作簿的 sheet1 中。

从第二张表开始,将每个产品子产品放在一张表中。使用 Excel 表格公式来乘以和添加价格。

记录一个宏以将该子产品的价格复制到 sheet1。

于 2012-09-06T17:59:46.643 回答