2022-09-10 12:25来源:m.sf1369.com作者:宇宇
Function GG(A As Integer, B As Integer) As Integer
Dim T As Integer
Randomize
If A > B Then
T = A
A = B
B = T
End If
GG = Int(Rnd * (B - A)) + A
End Function
整个函数的的用途是 返回 整数A B之间随机的一个整数 如果A = 15 B = 3000, 则调用GG(A, B) 返回15 到3000之间的一个整数,随机的。
因为有Int(Rnd*(B-A)),之句是B-A的差值乘以随机数,所以要求B>A。因此if段是确保这点的,如果B不大于A,则将A、B的值交换。
在Excel VBA中筛选数据,首先要有一个(或几个)循环For……
其次,用If……Then……Else或者Select Case 语句来进行筛选(如果数据比较有规律或简单,数据量又比较大,最好用Select Case 语句,效率高点。VBA的速度实在不敢恭维)。
再次就是结果输出了(此处略去N个字)。
EXCEL表的单元格区域是一个二维数组
dim arr
arr=Sheet3.Range(D7:D9)
'这时的arr得到的是二维数组
'你要转换成1维数组,先声明一个动态数组再重定义为1维数组
dim brr()
redim brr(1 to ubound(arr))
'再重新将二维转一维
for i = 1 to ubound(arr)
brr(i)=arr(i,1)
next
'如果你是要间隔写进去
for i = 1 to ubound(arr) step 2
brr(i)=arr(i,1)
next
sheet1.Range(A1:B5).Copy
sheet2.Range(B4:E8).PasteSpecial Paste:=xlPasteValues '值粘贴 数值
-----------
只粘贴 数值,而且由于区域不同(列数增多),增加的列数将用A1:B5循环填充
VBA里直接写[A5]==SUM(A1:A4)这么写VBA就认为你是要写数据而不是写公司,它会在每个字母前加一个‘,你只能用R[1]C[1]来表示,比如可以写成[A5] = =SUM(R[-4]C[0]:R[1]C[0])和你在单元格里写=SUM(A1:A4) 是一样的。