excel - 根据列数将现有值粘贴到相应行中一定次数

标签 excel vba

我正在尝试应用列数并将现有值粘贴到该行中 8 次或 4 次等。

我尝试了 Not IsEmpty 函数和循环,从列不为空的每一行开始,然后在其后面粘贴一定的次数。

这是我拥有的以及我想要的样子。

输入
enter image description here

期望的结果
enter image description here

For X = 2 To 37
    For Y = 2 To 37
        For XX = 2 To Cells(XX, 1) 
            If IsEmpty(Cells(X, Y)) = False Then 
                Cells(X, Y).Copy Cells(X, XX+1) 
            End If
        Next XX
    Next Y
Next X

最佳答案

向右填充

enter image description here

  • 比方说 nA 列中的值:从最后一列向左数,需要 n-th值填充n-1最右边的列。
Sub FillRight()

    ' Read.

    Dim ws As Worksheet: Set ws = ActiveSheet ' improve!
    
    Dim rg As Range, rCount As Long, cCount As Long

    With ws.UsedRange
        rCount = .Rows.Count - 1
        Set rg = .Resize(rCount).Offset(1) ' without headers
        cCount = .Columns.Count
    End With

    Dim Data() As Variant: Data = rg.Value
    
    ' Modify.
    
    Dim r As Long, c As Long, cNum As Long, cValue As Variant
    
    For r = 1 To rCount
        If Len(CStr(Data(r, 1))) > 0 Then
            cNum = cCount - Data(r, 1) + 1
            cValue = Data(r, cNum)
            For c = cNum + 1 To cCount
                Data(r, c) = cValue
            Next c
        End If
    Next r

    ' Write.
       
    rg.Value = Data
 
End Sub

关于excel - 根据列数将现有值粘贴到相应行中一定次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74454312/

相关文章:

javascript - Javascript 是否有类似于 VBA 的 DoEvents 的东西?

c# - 读取单元格的文本而不是值

vba - 如何对不同工作表上的多个数据透视表中相应字段的行总计求和?

java - Apache POI 的 getCachedFormulaResultType() 返回错误类型

excel - VLOOKUP 未正确匹配

当命名范围的引用不是事件工作表时,Excel VBA评估函数错误

excel - 尝试删除包含 0 的行时出现 VBA 错误

ms-access - Excel 工作表名称不允许使用 VBA - DAO 将数据导入 Access

c# - 检查已安装的 Excel 版本并启动它

vba - 从 Excel 中查找并替换单词。应用程序定义或对象定义的错误