如何根据excel vba中另一列的值创build一个命名的单元格区域
我有以下数据表
Channel Quarter Week value a 1 1 5811 a 1 2 199 a 1 1 8111 a 2 2 881 a 2 1 124 b 2 2 1991
我需要根据Channel和Quarter列的组合来更新值列(我已经创build了一个帮助列作为关键字)
Helper Channel Quarter Week value a1 a 1 1 5811 a1 a 1 2 199 a1 a 1 1 8111 a2 a 2 2 881 a2 a 2 1 124 b2 b 2 2 1991
从我的VBA表单中,我创build了一个名字在这些帮助列中的字典
cellDict = [a1:= 1000, 2:= 2000, b1:= 500 etc]
现在我想在这个字典的基础上更新'value'列的值,使得对应于a1的单元格每个都被更新为1000/3(因为a1的行数是3),并且类似的单元格对应于到A2每个更新1000/2。
尝试创build具有不同帮助器名称的值列的命名范围,然后遍历每个命名范围,并通过取总值并将其除以命名范围的计数来更新单元格值
所以,我的问题是如何创build一个名为范围的值列的帮助列的基础上,使我有(假设值是列V)
Range("a1") = V1:V3 Range("a2") = V4:V5 etc..
我认为你可以用更简单的方法来做到这一点。
首先,我假设行按照你的帮助栏进行sorting!
只需find帮手列中的第一个a1
。 用find
方法获取行号为rowStart
。
然后使用WorksheetFunction.CountIf
方法来计算帮助者列中a1
的出现为rowCount
。 所以rowEnd = rowStart + rowCount - 1
。
现在你可以循环…
Dim iRow As Long For iRow = rowStart to rowEnd 'use your dictionary and rowCount to replace values here. 'Example for accessing the cell: Worksheets("MySheet").Cells(iRow, "E").Value = "" Next iRow