Vba 基于范围复制列

Vba 基于范围复制列,vba,Vba,函数查找该区域中的单元格是否为非数字单元格,并从另一个工作表复制所选区域。 但我无法克服这一点 Sub paste() Application.ScreenUpdating = False Dim c As Range Dim lt As String Dim sn As String sn = ActiveSheet.Name For Each c In Range("a6:ck6") If c.Value.IsNumber

函数查找该区域中的单元格是否为非数字单元格,并从另一个工作表复制所选区域。
但我无法克服这一点

Sub paste()  
    Application.ScreenUpdating = False
    Dim c As Range
    Dim lt As String
    Dim sn As String
    sn = ActiveSheet.Name

    For Each c In Range("a6:ck6")
        If c.Value.IsNumber() Then
            Sheets("1").Select
            Range("D8:D69").Select
            Selection.Copy
            Sheets(sn).Select
            MsgBox Split(ActiveCell.Address, "$")(1) = lt
            Cells(8, lt).Paste
        Else
        End If
    Next c
    Application.ScreenUpdating = True
End Sub
试试这个:

Dim c As Range, col As String
With Sheets(sn) '~~> Explicitly provide the sheet name here
    For Each c In .Range("A6:CK6")
        If Not IsNumeric(c.Value) Then
            col = Split(c.address, "$")(1)
            Sheets("1").Range(col & "8:" & col & "69").Copy c.Offset(2,0)
        End If
    Next
End With
上述代码检查A6:CK6是否为非数值。
如果是,它会将同一列中名为“1”的工作表上的值从第8行复制到第69行。
这就是你想要的吗