【问题标题】:Loop through sheet 2 and copy specific values into specified columns on sheet 1遍历工作表 2 并将特定值复制到工作表 1 上的指定列中
【发布时间】:2016-06-21 16:33:38
【问题描述】:

我创建了以下循环来搜索以“R”开头的任何值加上一个长度为 10 个字符的特殊字符,并将它们粘贴到另一张纸上第 1 列的下一个空白单元格中。 我现在需要开发此代码以复制 sheet2 上以 R 开头的任何值并将它们粘贴到 sheet1 上的第 1 列 (A) 并复制以 sheet2 上的数字开头的任何值并将它们粘贴到 sheet1 上的第 4 (D) 列中/p>

“R”值将与数值相关联。例如,在 sheet2 上,A1 可能是 R000000_01,B1(如果存在值)可能是 12345,这两个需要如上所述复制到 A3 和 D3 中

这是我迄今为止创建的:

EnvRange = "A2:R999"

RowNo = 3
For Each C In Worksheets("Sheet2").Range(EnvRange)
If Len(C.Value) < 10 Then
GoTo NextCell
ElseIf Len(C.Value) < 11 Then
Worksheets("Sheet1").Cells(RowNo, 1).Value = C
RowNo = RowNo + 1
Else
Chars = InStr(1, C, "R")
Do While Chars < Len(C)
Worksheets("Sheet1").Cells(RowNo, 1).Value = Mid(C, Chars, 10)
Chars = InStr(Chars + 9, C, "R")
RowNo = RowNo + 1
If Chars = 0 Then GoTo NextCell

Loop
End If

NextCell: Next C

非常感谢您在这件事上的帮助。 提前谢谢你。

【问题讨论】:

    标签: vba excel loops


    【解决方案1】:

    您可以使用Like查看格式:

    Sub Tester()
    
        Const ENV_RNG As String = "A2:R999"
    
        Dim c As Range, RowNo As Long, sht As Worksheet
    
        Set sht = Worksheets("Sheet1")
        RowNo = 3
    
        For Each c In Worksheets("Sheet2").Range(EnvRange)
            If c.Value Like "R?????????" Then
                sht.Cells(RowNo, 1).Value = c.Value
                sht.Cells(RowNo, 4).Value = c.Offset(0, 1).Value
                RowNo = RowNo + 1
            End If
        Next c
    
    End Sub
    

    【讨论】:

    • 我有一个非常相似的 sub 用于检查日期并使用 For Each c In ... 方法相应地放置值,它完美地工作
    • 太棒了!谢谢@蒂姆·威廉姆斯!这就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多