【问题标题】:combine multiple range vba for each loop为每个循环组合多个范围 vba
【发布时间】:2019-08-25 07:34:36
【问题描述】:

所以希望我能正确地做到这一点。我正在学习 VBA,但在这方面真的很努力。

下面显示的循环作为一个单独的实体工作(例如“d”的循环)但在下面组合时不能正常工作(例如“d”和“h”的循环)

基本上,我试图做的是输出一行中每个单元格的值(字符串),然后一旦完成,然后移动到下一行。

但我不知道如何让每个单元格引用值“text1”和“text2”

下面是我在excel中的数据表

Testme = D2
Testme2 = D3
Testme3 = D4
Testme4 = D5

Text2 = H1
wewewe = H2
wewewe2 = H3
wewewe = H4
wewewe3 = H5`




 Dim d As Range
 For Each d In Range(Range("D2"), Range("D2").End(xlDown))
 Dim text1
 text1 = d 'Text1

 Dim h As Range
 For Each h In Range(Range("H2"), Range("H2").End(xlDown))
 Dim text2
 text2 = h 'Text2

Next
Next

【问题讨论】:

    标签: excel vba loops foreach


    【解决方案1】:

    你可以试试这样的:

    Sub testme()
    
    Dim wb As Workbook: Set wb = ActiveWorkbook
    Dim ws As Workbook: Set ws = wb.Sheets("Sheet1")
    
    Dim rngData As Range, rngCell As Range
    
    With ws
        Set rngData = Union( _
                        .Range("D2:D" & .Cells(.Rows.Count, "D").End(xlUp).Row), _
                        .Range("H2:H" & .Cells(.Rows.Count, "H").End(xlUp).Row) _
                        )
    End With
    
    For Each rngCell In rngData
        rngCell.Offset(0, 1).Value = rngCell.Address & " value: " & rngCell.Value
    Next rngCell
    
    End Sub
    
    

    【讨论】:

    • 您好,感谢您对我的帮助。我得到未定义的 text1 和 text 2 变量。我尝试添加以下内容:Dim wb As Workbook: Set wb = ActiveWorkbook Dim ws As Worksheet: Set ws = wb.Sheets("Sheet1") Dim text1, text2 Dim d, h text1 = d text2 = h text1 和 text2 稍后在脚本中被引用,需要传递一个字符串值
    • 不清楚您最终要达到的目标...我已尽力回答您的问题,但如果您觉得需要更多帮助,您应该编辑您的问题,添加更多信息(即:您的数据看起来如何,以及您期望结果如何)。最终有多种方法可以达到相同的结果,有些方法比其他方法更好,以上只是关于如何在不同范围内引用循环中的单元格的概念证明......(这是我理解你所问的)。如果您将一些数据添加到 D 和 H 列,请测试上述内容并查看它为您提供了什么,然后根据您的需要进行调整。
    猜你喜欢
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多