我有两个电子表格。电子表格#1显示25个项目的列表(在单元格A4:A28中)。电子表格#2是一个计算工作簿,在下拉列表中具有25个项目的相同列表。下拉列表位于单元格B7中。每次在此下拉列表中更新选择时,电子表格2都会更新。我想做的是遍历电子表格2下拉列表中的每个选择,并复制总行的总和(行C68:Q68),然后将其粘贴到电子表格#1中,用于对应的项(单元格B4中的第一项)名单)。然后移至列表中的第二项,依此类推。
我有以下代码:
Sub loopthroughvalidationlist()
Dim inputRange As Range
Dim c As Range
Set inputRange = Evaluate(ActiveWorkbook("Spreadsheet2").Worksheet("Tab2").Range("B7").Validation.Formula1)
For Each c In inputRange
ActiveWorkbook("Spreadsheet1").Worksheets("Tab1").Range("B4").Value = Application.Sum(ActiveWorkbook("Spreadsheet1").Worksheet("Tab1").Range(Cells(68, 3), Cells(68, 17)))
Next c
End Sub
我很难在两张纸之间移动,而实际上无法遍历电子表格中的列表。
答案 0 :(得分:0)
我相信这是因为在访问Cells
对象时,您所使用的表并不明确。它默认为ActiveWorkbook
,它可能是必需的,也可能不是。尝试这样的事情,看看是否可行。
Sub loopthroughvalidationlist()
Dim inputRange As Range
Dim c As Range
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Workbooks("Spreadsheet1").Worksheets("Tab2")
Set ws2 = Workbooks("Spreadsheet2").Worksheets("Tab2")
Set inputRange = Evaluate(ws2.Range("B7").Validation.Formula1)
For Each c In inputRange
'.Cells will use whatever the activeworkbook is,
'it is preferable to be explicit which sheet you want to work with
ws1.Range("B4").Value = Application.Sum(ws2.Range(ws2.Cells(68, 3), ws2.Cells(68, 17)))
Next
End Sub