我对VBA缺乏经验。我用VBA取得的成就是谷歌搜索引起的。所以,我所知道的根本没有深度。
好的,这就是我所拥有的:
在工作簿中,我有两张纸。让我们称它们为Sheet1和Sheet2。
在Sheet1中我有这个2-D表,其中### s是与匹配的行和列标签对应的某个值:
年龄男性女性
18-29 ##### ######
30-44 ##### ######
45+ ##### ######
上述所有细胞均为D2:F5
现在,在Sheet2中我有3列:ID年龄性别,从A7开始。因此,标题位于A7,B7,C7
你可能会看到我的目标。
我有数千行。
我需要在D7列中放置适当的###,标题Amount基于Sex(B)和Age(C)中的匹配值。
因此,如果Sheet1中的交叉表具有以下值:
年龄男性女性
18-29 123 456
30-44 789 101112
45+ 131415 161718
然后在Sheet2中我想看到:
ID性别年龄金额
1个女30-44 101112
2男18-29 123
等栏目。
我没有丝毫的线索如何解决这个问题。到目前为止,我最大的VBA成就是将CSV文件导入活动工作表,所以......
答案 0 :(得分:0)
一个问题是:是"性"和"年龄" Sheet2中的手动输入?
您可能想要使用以下功能:
Application.Worksheetfunction.Vlookup(...)
但是,当然,您需要为每个表格设置某种类型的标识,例如:
Dim wSheet1 as Worksheet
Dim wSheet2 as Worksheet
Set wSheet1 = Worksheets("Sheet1")
Set wSheet2 = Worksheets("Sheet2")
就像你在普通工作簿中使用它一样。
示例:
wSheet2.cells("A7").value = "1" 'Note: You can improve this by looking at an empty row automatically with a code
wSheet2.cells("B7").value = application.worksheetfunction.vlookup("18-29",wSheet1.Range("D4:F9"),3,0)
您可以通过编辑搜索条件来改善您喜欢的程序" 18-29"
干杯