我正在寻找一个允许单元格/变量/索引填充到某一点的函数,但是一旦该单元格/变量/索引超过给定的阈值,它就会溢出并开始填充下一个单元格/变量/指数。我正在使用Visual Basic(excel),但我确信我可以将java等示例函数转换为我需要的函数。
基本上我在服务器上有挂载点,当服务器存储达到2TB限制时,它会创建一个新挂载点,并在两个新挂载点之间平均分配存储。但是,必须根据LUN大小舍入这些金额: 在100gb和100g之间1000gb =四舍五入到最接近的50gb(即100,150,200等) 在1000gb和1000之间2000gb =四舍五入到最接近的250gb(即1000,1250,1500等)
我的意思下面的一个例子我试图在foreach循环中做这个但是它没有做我需要的东西(再次这是excel vba):
For Each cell1 In rng1
If cell1.Value >= 4096 And < 6144 Then
Range("x1") = cell1.Value/3
Range("x2") = cell1.Value/3
Range("x3") = cell1.Value/3
ElseIf cell1.Value >= 2048 And < 4096 Then
Range("x1") = cell1.Value/2
Range("x2") = cell1.Value/2
...
答案 0 :(得分:0)
您的问题似乎仍然存在问题,因为您检查的值不是问题所述,但这是一个让您入门的概念。
Dim gig_disperse AS Integer
For Each cell1 in rng1
SELECT CASE cell1.value
CASE 4096 to 6143
gig_disperse = roundGigs(cell1.Value,250)
Range("x1") = Round(gig_disperse/3,0)
Range("x2") = Round(gig_disperse/3,0)
Range("x3") = gig_disperse - Range("x1") - Range("x2")
CASE 2048 to 4095
gig_disperse = roundGigs(cell1.Value,50)
Range("x1") = Round(gig_disperse/2,0)
Range("x2") = gig_disperse - Range("x1")
END SELECT
Next cell1
Function roundGigs(val As Long, gigs As Integer) AS Integer
roundGigs = Round(val / gigs,0) * gigs
End Function