【问题标题】:Populate cells with two numbers only using vba仅使用 vba 用两个数字填充单元格
【发布时间】:2013-04-08 14:19:05
【问题描述】:

请帮助我,我要做的是用数字 0 和 2 填充单元格 N2:N1041。我希望在 N 列中总共有 100 个单元格(要填充的随机单元格)填充为“0”其余 940 个单元格为“2”。或者换句话说,我希望范围的 9.6% (N2:N1041) 用“0”填充,其余的用“2”填充。

提前非常感谢您。

【问题讨论】:

  • 您有机会尝试我建议的解决方案吗?

标签: excel vba


【解决方案1】:

您所拥有的是一个相当简单的控制Do 循环的练习。

首先,将此范围内的所有单元格值设置为“2”。

然后,使用RandBetween 函数,选择该范围内的随机单元格设置为“0”值。添加一个检查以确保您没有用 0 覆盖 0,然后添加一个计数器以便您可以控制何时退出循环。

Sub TestMacro()
Dim rng As Range
Dim count0 As Integer
Dim randCell As Range

Set rng = Range("A2:A1041")

rng.Value = "2" 'Set all cells = 2.'

Do

    Set randCell = rng.Cells(Application.WorksheetFunction.RandBetween(1, 1040))
    'make sure we're not overwriting another 0-value'
    If Not randCell.Value = 0 Then
        randCell.Value = 0  
        'increment the counter variable'
        count0 = Application.WorksheetFunction.CountIf(rng, "0")
    End If
Loop While count0 < 100  'exit the loop once 100 cells have been changed to 0.'


End Sub

【讨论】:

    猜你喜欢
    • 2017-01-23
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多