可以使用VBA中的随机数函数来实现这个需求。以下是一个示例代码:

Sub RandomizeColumns()
    Dim lastRow As Long
    Dim randomCol As Integer
    Dim i As Long
    
    ' 获取A列最后一行的行号
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 循环遍历A列到最后一行
    For i = 1 To lastRow
        ' 生成一个1到3之间的随机数,表示要抽取的列号
        randomCol = Int((3 * Rnd) + 1)
        
        ' 将随机抽取的列的值复制到D列
        Cells(i, 4).Value = Cells(i, randomCol).Value
    Next i
End Sub

请注意,为了使用随机数函数Rnd(),需要在代码的顶部添加以下语句:

Randomize

此代码将在A列到D列之间进行随机抽取,将随机抽取的列的值复制到D列

vba A列、B列、C列随机抽其中一列放到D列

原文地址: http://www.cveoy.top/t/topic/iFhj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录