Vba 从范围复制值,并将每个值以不同的给定(行)偏移粘贴到另一张图纸中

Vba 从范围复制值,并将每个值以不同的给定(行)偏移粘贴到另一张图纸中,vba,for-loop,range,offset,Vba,For Loop,Range,Offset,首先我想自我介绍一下。我和米格尔最近开始学习VBA,以提高工作效率,节省工作时间。我熟悉各种类型的公式,但在使用VBA时,我有时会被卡住 我试图从工作表“Aux”循环A2:A355范围,并将每个值复制到工作表“CS”,每个值应粘贴在A:A列中,但偏移量在B2:B355工作表“Aux”中给出。例如,我给出了所附的示例。 示例代码: 代码如下: Sub cablexsection() Dim s As Integer Dim smax As Integer smax = Sheets("Aux"

首先我想自我介绍一下。我和米格尔最近开始学习VBA,以提高工作效率,节省工作时间。我熟悉各种类型的公式,但在使用VBA时,我有时会被卡住

我试图从工作表“Aux”循环A2:A355范围,并将每个值复制到工作表“CS”,每个值应粘贴在A:A列中,但偏移量在B2:B355工作表“Aux”中给出。例如,我给出了所附的示例。 示例代码:


代码如下:

Sub cablexsection() 
Dim s As Integer
Dim smax As Integer
smax = Sheets("Aux").Range("b1").Value

Sheets("CS").Activate

For s = 3 To smax
Sheets("CS").Cells(s, 1).Value = Sheets("Aux").Cells(s, 1).Value

'here I have to set the offset to down in order to paste cells given Sheets("Aux").Cells(s, 2) values

Next s

End Sub

在链接下,您可以找到要处理的文件:

非常感谢,如果这个问题再次出现,我很抱歉。我试着浏览论坛,但也许我不知道该写些什么

试试这个



我是否理解您试图做的事情,例如,从单元格A3的表Aux中获取值,并将其复制到表CS,相对于单元格A3的表Aux中的值的位置,通过单元格B3的表Aux中包含的值偏移行(等等…)?亲爱的Scott,您是对的。我需要复制Aux中的值,每个值都按照Aux中给定的值粘贴在CS表偏移行中。亲爱的Paul,代码可以工作,但并不完全正确。而不是开始复制值1,2,3-Cond.A。。。从3秒C开始复制。我想你已经理解了我的问题,但我对代码感到困惑:
wsCS.Cells(offSetCell.Value2+s,1)。Value=wsAux.Cells(s,1)。Value
为什么写“offSetCell.Value2”而不是“offSetCell.Value+s,1”?谢谢您确定它开始从值
3-Cond.A
复制吗?(前两个值复制到第
3+26行和第
3+22行)如果要更改起始行,请将第
3行的
从s=3的
更改为sMax
.Value2
使用起来更快(参见此)
Option Explicit

Sub CableXsection()
    Dim wsAux As Worksheet, wsCS As Worksheet
    Dim s As Long, sMax As Long, offSetCell As Range

    Set wsAux = ThisWorkbook.Worksheets("Aux")
    Set wsCS = ThisWorkbook.Worksheets("CS")

    sMax = wsAux.Range("B1").Value

    Application.ScreenUpdating = False

    For s = 3 To sMax

        Set offSetCell = wsAux.Cells(s, 2)    '2 is the offset column from the same row

        If Not IsError(offSetCell) And IsNumeric(offSetCell) Then
            wsCS.Cells(offSetCell.Value2 + s, 1).Value = wsAux.Cells(s, 1).Value
        End If
    Next

    Application.ScreenUpdating = True
End Sub