dztkdx 2024-01-28 22:16 采纳率: 30%
浏览 2

VBA特定单元格循环复制

初学提问,VBA想实现从sheet2中复制每列中的特定单元格,粘贴到sheet1之中按行来展示;其中从每列中要复制的单元格行是确定的,但是因为要复制的每列之间会有一些空白或者无用的数据,所以需要每跨6列后对下一列执行一次这个操作;想看看怎么才能实现这个循环
大概知道是要用cells配合对象写入值嵌套,但是下手不会写

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-01-29 10:12
    关注

    引自免费微信小程序:皆我百晓生

    你可以使用VBA的循环结构和条件判断来实现你的需求。以下是一个示例代码,可以帮助你完成这个循环复制的操作:

    Sub CopySpecificCells()
        Dim sourceSheet As Worksheet
        Dim targetSheet As Worksheet
        Dim sourceRow As Integer
        Dim targetRow As Integer
        Dim sourceColumn As Integer
        Dim targetColumn As Integer
        Dim rowCount As Integer
        Dim columnCount As Integer
        
        ' 设置源表和目标表
        Set sourceSheet = ThisWorkbook.Sheets("Sheet2")
        Set targetSheet = ThisWorkbook.Sheets("Sheet1")
        
        ' 设置起始行和列
        sourceRow = 1
        targetRow = 1
        sourceColumn = 1
        targetColumn = 1
        
        ' 设置每跨6列执行一次操作
        columnCount = sourceSheet.Cells(1, sourceSheet.Columns.Count).End(xlToLeft).Column
        For sourceColumn = 1 To columnCount Step 6
            ' 设置每列要复制的行数
            rowCount = 4
            
            ' 复制单元格内容
            For i = 1 To rowCount
                targetSheet.Cells(targetRow, targetColumn).Value = sourceSheet.Cells(sourceRow, sourceColumn).Value
                sourceRow = sourceRow + 1
                targetRow = targetRow + 1
            Next i
            
            ' 切换到下一列
            targetColumn = targetColumn + 1
            sourceRow = 1
            targetRow = 1
        Next sourceColumn
    
    End Sub
    

    上面的代码假设源表为"Sheet2",目标表为"Sheet1",并且每列要复制的行数都是4行。你可以根据实际情况修改这些值。这段代码可以实现从每列中复制特定的单元格,然后按行粘贴到目标表中。

    请注意,在这段代码中,我将源表中每列的起始行和目标表中每列的起始行分别定义为sourceRowtargetRow,通过循环进行遍历和复制。每次遍历完一列后,将源表和目标表的起始行重置,然后切换到下一列进行操作。

    希望以上代码和解释能够帮助到你!如果有任何问题,请随时提问。

    评论

报告相同问题?

问题事件

  • 修改了问题 1月28日
  • 修改了问题 1月28日
  • 创建了问题 1月28日