根据单元格值在VBA中的多张图纸中导航

根据单元格值在VBA中的多张图纸中导航,vba,excel,Vba,Excel,我是一个相当新的VBA用户,在我去阅读论坛的时候很少学习代码 现在我想编写一些代码,但在论坛上找不到方法/提示,所以我来寻求您的帮助 我有很多以姓名为标题的电子表格,代表这些人的开支。我的目标是创建一个文件,在该文件中我重新组合了电子表格,然后希望提取“主”电子表格中的费用参考。相关面积将在同一行中标记为“Y” 在“主页”电子表格的第一页,我有一些人的名字,例如“保罗”、“玛丽”、“皮埃尔”等等。。。。在同一列中 我想创建一个代码,可以查看电子表格“Home”中的名称,并将数据从“Named”电

我是一个相当新的VBA用户,在我去阅读论坛的时候很少学习代码

现在我想编写一些代码,但在论坛上找不到方法/提示,所以我来寻求您的帮助

我有很多以姓名为标题的电子表格,代表这些人的开支。我的目标是创建一个文件,在该文件中我重新组合了电子表格,然后希望提取“主”电子表格中的费用参考。相关面积将在同一行中标记为“Y”

在“主页”电子表格的第一页,我有一些人的名字,例如“保罗”、“玛丽”、“皮埃尔”等等。。。。在同一列中

我想创建一个代码,可以查看电子表格“Home”中的名称,并将数据从“Named”电子表格复制回“Home”电子表格

格式将是相同的“命名电子表格”,所以我总是在看同一列

到目前为止,我已经尝试了以下方法

Sub Expenses()

    Set wk=ThisWorkbok.sheets("Home")

    Dim Name as String
    Dim Expense as Integer
    line_newexpense = 9
    rowline = 10
    start_l =34

    Do While Name <> "#"
        Line = wk.Cells(start_l,3)
        Name = ThisWorkbook.Sheets("Home").Cells(line_newexpense,39).Value
        Expense = ThisWorkbook.Sheets(Name).Cells(rowline,3).Value

        For j=50 to 8
            If ThisWorkbook.Sheets(Name).Cells(25,j).Value="Y" Then
                Line = ThisWorkbook.Sheets(Name).Cells(3,j).Value
            End If
            rowline = rowline+1
        Next j

        line_newexpense = line_newexpense + 1
    Loop
子费用()
Set wk=ThisWorkbok.sheets(“主页”)
将名称设置为字符串
将费用设置为整数
行_newexpense=9
行线=10
开始=34
在命名为“#”时执行此操作
行=工作单元格(开始,3)
名称=此工作簿.Sheets(“Home”).Cells(第39行)。值
费用=此工作簿.工作表(名称).单元格(第3行).值
对于j=50到8
如果此工作簿.Sheets(Name).Cells(25,j).Value=“Y”则
行=此工作簿.Sheets(Name).Cells(3,j).Value
如果结束
行线=行线+1
下一个j
行新费用=行新费用+1
环
问题是,当我尝试运行它时,我遇到了一个“错误9下标超出范围”,因此不确定如何应对该问题

非常感谢您的提示


您好,

您不需要VBA。您可以使用
间接
功能实现您想要的功能

比如说

=INDIRECT(B1&"!$A$1")
其中
B1
有工作表的名称,比如说“Paul”,而
A1
是包含所需数据的单元格


您还可以使用
IF
函数对上述公式中的
Y
部分进行因子计算。

您好,欢迎使用堆栈溢出。我已经编辑了您的问题,以使您的代码更具可读性。缩进良好的代码通常会吸引更高质量的答案。祝你好运嘿,卡罗莱纳,当您
设置wk=ThisWorkbok.sheets(“Home”)
工作簿拼写错误时,这意味着您无法访问
Line=wk.Cells(start\u l,3)
,因为未设置wk。然后,当您尝试将j从50迭代到8时,您需要指定j将是j-1,如下所示:
对于j=50到8步骤1
,但是使用此j将向后,行线将向前。请添加“Home”和“Name”的屏幕截图sheets@user3598756永远不要问screenshost,除非是UI问题。看。卡罗莱纳:然后发布文件@不管怎样,我不是在截图中要求代码!谢谢你的评论和帮助!我曾尝试实施这些更改,但希望我头版上的摘录是一行接一行,我不确定间接是否是最好的选择。我想使用VBA,因为它允许灵活性和格式设置,但如果间接让我很高兴学习这个技巧(例如:有三行费用,但我希望#1和#3一行出现在“主”表上,我该怎么做?谢谢!