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