首页 > 解决方案 > 对另一张纸上的每个复制单元格打印一个符号

问题描述

表 1:

Jan 1
Jan 2
Jan 3
Feb 4
Feb 5
Mar 6
Mar 7
Apr 8
May 9
May 10
May 11

表 2:

    Jan Feb     Mar Apr May
1   X               
2   X               
3   X               
4       X           
5       X           
6           X       
7           X       
8               X   
9                   X
10                  X
11                  X

我编写了一个 vba 代码来将每个月的相应值复制到另一张纸上,但是当复制“1”时,我需要在 B2 中针对它打印“x”,然后分别复制“2”然后在“B3”中复制“X”。有人能帮我吗?

标签: excelvba

解决方案


或者,您可以尝试使用以下代码:

Sub CopyMonths()
    Dim lngLastRow          As Long
    Dim lngCount            As Long
    Dim lngColumn           As Long
    Dim lngRow              As Long
    Dim arrMonths           As Variant

    'two approaches: 1) either a static list of months:
    'arrMonths = Array("Jan", "Feb", "Mar", "Apr", "May")
    '2) or refer to Sheet2, range A1:E1
    arrMonths = Array(Sheet2.Range("A1:E1").Value)

    With Sheet1
        lngLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        For lngCount = 1 To lngLastRow
            lngColumn = Application.WorksheetFunction.Match(.Range("A" & lngCount).Value, arrMonths, 0)
            lngRow = .Range("B" & lngCount).Value
            Sheet2.Cells(lngRow + 1, lngColumn).Value = "x"
        Next lngCount
    End With
End Sub

推荐阅读