使用VBA Sum函数在表格之间传输数据

时间:2017-03-20 18:06:51

标签: vba sum

我正在处理循环数据输入脚本。在一些使用和函数的单元中是有用的,因为数据可以在许多相邻单元之一中,其中知道它将在哪个单元中是不可预测的,并且该范围中的所有其他单元将可预测地为零。

我首先命名我的变量

Dim file As Variant, I As Integer, Cval As String

输入我的文件夹并开始循环并打开工作簿

file = Dir("C:\Users\test\")
While (file <> "")
Workbooks.Open (file)

接下来,我在单元格A3中创建另一个带有初始值的变量,并在我增加时从每一行中获取文件名。

I = 1
Cval = Workbooks("VBA Practice Workbook").Sheets("Sheet1").Cells(I, 1) & ".xls"
Do Until Cval = file
  I = I + 1
  Cval = Workbooks("VBA Practice Workbook").Sheets("Sheet1").Cells(I, 1) & ".xls"
  Loop

脚本贯穿第一页,第二页没有问题

Workbooks(file).Sheets("Cover Page").Range("E39:J39").Copy
Workbooks("VBA Practice Workbook.xlsm").Sheets("Sheet1").Cells(I, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Workbooks(file).Sheets("Cover Page").Range("E41:J41").Copy
Workbooks("VBA Practice Workbook.xlsm").Sheets("Sheet1").Cells(I, 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Workbooks(file).Sheets("Scoring (pg 1)").Range("B59:C59").Copy
Workbooks("VBA Practice Workbook.xlsm").Sheets("Sheet1").Cells(I, 4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

然后我切换到使用sum函数,我收到一条错误信息。知道什么可能导致我的问题吗?

Workbooks("VBA Practice Workbook.xls").Sheets("Sheet1").Range (Cells(I, 6) = Application.WorksheetFunction.Sum(Workbooks(file).Sheets("Scoring (pg 2)").Range("B6:B14")))
Workbooks("VBA Practice Workbook.xlsm").Sheets("Sheet1").Range (Cells(I, 7) = Application.WorksheetFunction.Sum(Workbooks(file).Sheets("Scoring (pg 2)").Range("C6:C14")))

1 个答案:

答案 0 :(得分:0)

我猜你正在尝试将Sheet1上的某些单元格设置为“Scoring(第2页)”页面上的单元格总和。

但您当前的陈述是将有效工作表的JOIN值与SELECT gallery_url, preview_url FROM my_gallery_previews INNER JOIN my_galleries ON my_gallery_previews.gallery_id = my_galleries.gallery_id WHERE my_galleries.format = 'pictures' 计算的值进行比较,然后根据该比较是返回Cells(I, 6)还是{{1使用结果作为Sum属性的参数。

相信你正在努力做到:

True

我已将原始工作簿名称保留在该代码中,但您可能希望确定它是写入的False还是Range工作簿。