我正在构建一个Excel工作表来帮助我进行教学。
我的目标是一张纸来创建两个随机数,计算它们的算术平均值和几何平均值,然后进行比较。我已经完成了这一部分。
我创建了一个宏和两个函数,这些函数生成随机数,然后将数字输入到所需的单元格中:
Sheets("Sheet1").Range("L1").Value = NewRandom()
Sheets("Sheet1").Range("M1").Value = NewRandom2()
我创建了一个执行宏的按钮。
如何在同一张纸上的指定区域U7:V200中记录我所生成的内容?
我的目标:第一次单击按钮时,两个生成的数字将分别记录在U7和V7上。第二次单击时,将在U8和V8上记录两个生成的数字,依此类推。
答案 0 :(得分:2)
这只是找到最后一行并粘贴到它的问题...
dim lr as long
lr = cells(rows.count,"U").end(xlup).row
cells(lr+1,"U").value = randomnumber1
cells(lr+1,"V").value = randomnumber2
假设您总是将U / V配对在一起,那么只需要最后一行即可
答案 1 :(得分:2)
下面的子例程将基于工作表的“ U”列查找下一个空行。 XLROW表示您要在其中开始搜索空行的行。 找到空行后,传递给子例程的两个随机值将输入到第一个可用的空行中。
请确保将“ Sheet1”更改为在excel中使用的工作表的名称(如果有的话)。
Public Sub NEXTEMPTY(VAL1 As Integer, VAL2 As Integer)
Dim XLROW As Integer
XLROW = 7
Do Until Sheet1.Range("U" & XLROW) = ""
XLROW = XLROW + 1
Loop
Sheet1.Range("U" & XLROW).Value = VAL1
Sheet1.Range("V" & XLROW).Value = VAL2
End Sub
然后,您可以在任何想要使用的地方调用子弹
Call NEXTEMPTY(RANDOM1, RANDOM2)
编辑:您也可以在“直到”中使用它。这是更可取的。
Do Until IsEmpty(Sheet1.Range("U" & XLROW))