VBA从工作簿中复制文件夹中的单元格值

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

我希望excel能够查看以前在同一个文件夹(所有不同的工作簿)中进行的计算,并且如果在工作簿中find一个单元格,则将权重,价格和源文件复制粘贴到当前打开的工作簿中。 我完全失去了如何比较细胞,如果find了匹配,然后将其复制到正确的位置。 我相信.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 

  • 这就是我从你的理解问题你有150个产品。
  • 每个产品将有50到60个子产品。
  • 您将有每个子产品的重量和价格。基于这种types的子产品的数量,你会乘以每套价格和套数来find该子产品的总价格。
  • 之后,您将添加所有子产品的价格,以find一个产品的价格。

如果这是你正在寻找我有一个想法。

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

从第二张开始,将每个产品的副产品放在一张纸上。 使用Excel表单公式来增加和增加价格。

logging一个macros,将副产品的价格复制到sheet1。

将源存储在一个variables中

找出当前行的价格 – 添加到一个variables

当源更改将总计列在右侧时

也许使用类似的东西

 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 

对不起,没有时间为你写出完整的代码…但试图让你在路上…