You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA Excel如何从指定列获取随机单元格的实际值

VBA代码调整方案

现有代码存在两处问题:

  • WorksheetFunction.RandBetween 本身的返回值是指定区间内的随机整数,你直接将该返回值赋值给卡片变量,拿到的自然是随机行号而非单元格值
  • RandBetween 的第一个参数传参错误,你需要从第1行到最后数据行之间取随机行号,下界应为1而非A1

调整后的可运行代码如下:

Dim ws As Sheet1
' 绑定工作表,避免多表切换时单元格引用出错
Set ws = ThisWorkbook.Worksheets("Sheet1") ' 括号内替换为你的实际工作表名称

' 分别获取A列、B列最后一行有数据的行号
P1LR = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
P2LR = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row

' 生成对应列的随机行号
RandomP1Row = WorksheetFunction.RandBetween(1, P1LR)
RandomP2Row = WorksheetFunction.RandBetween(1, P2LR)

' 用随机行号读取对应单元格的实际存储值
P1Cards = ws.Cells(RandomP1Row, 1).Value
P2Cards = ws.Cells(RandomP2Row, 2).Value

如果你想简化代码减少变量,也可以直接合并写法一步拿到值:

P1Cards = ws.Cells(WorksheetFunction.RandBetween(1, P1LR), 1).Value
P2Cards = ws.Cells(WorksheetFunction.RandBetween(1, P2LR), 2).Value

内容的提问来源于stack exchange,提问作者user58518

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:36:00