【发布时间】:2022-07-24 09:13:23
【问题描述】:
我需要采样数据。
例如
- 如果是 552 行,从第 2 行开始采样
- 对于计算的采样频率,例如 8。
从第 2 行开始,每第 8 行标记为“是”。
如果确实覆盖了整个数据,则循环再次选择第 8 行,而忽略已选择的行。
Sub Sampling()
Dim rngDataRange As Range
Dim rngCombRange As Range
Dim intRowNum, i As Integer
Dim DSheet As Worksheet
Set DSheet = Worksheets("Yardi Report")
intRowNum = 1
Set rngCombRange = Range(intRowNum & ":" & intRowNum + 5)
For i = 1 To 552
If intRowNum + 5 > 552 Then
intRowNum = 5 - (552 - intRowNum) + 1
Else
intRowNum = intRowNum + 5
End If
Set rngDataRange = Range(intRowNum & ":" & intRowNum + 5)
Set rngCombRange = Union(rngCombRange, rngDataRange)
rngCombRange.Select
Range(DSheet.Cells(rngCombRange.Row, "Q")).Interior.Color = 49407
Next
End Sub
【问题讨论】:
-
检查循环。像
For 2 to 552 Step 8这样的东西应该可以工作。 不知道该怎么做然后阅读Getting started with VBA in Office -
但是如果没有选择50个样本,它应该再次循环返回