Java 溢出函数/计算
我正在寻找一个函数,该函数允许单元格/变量/索引填充到某一点,但一旦该单元格/变量/索引超过给定阈值,它将溢出并开始填充下一个单元格/变量/索引。我正在使用VisualBasic(excel),但我确信我可以将java等的示例函数转换为我所需要的 基本上,我在服务器上有挂载点,当服务器存储达到2TB限制时,它会创建一个新的挂载点,并在两个新的挂载点之间平均分割存储。但是,这些金额必须根据LUN大小四舍五入: 100gb和1000gb之间=四舍五入到最接近的50gb(即100、150、200等) 在1000gb和2000gb之间=四舍五入到最接近的250gb(即1000、1250、1500等) 下面是我的一个示例,我试图在foreach循环中执行此操作,但它没有执行我需要的操作(这也是excel vba): rng1中每个cell1的Java 溢出函数/计算,java,function,vba,loops,Java,Function,Vba,Loops,我正在寻找一个函数,该函数允许单元格/变量/索引填充到某一点,但一旦该单元格/变量/索引超过给定阈值,它将溢出并开始填充下一个单元格/变量/索引。我正在使用VisualBasic(excel),但我确信我可以将java等的示例函数转换为我所需要的 基本上,我在服务器上有挂载点,当服务器存储达到2TB限制时,它会创建一个新的挂载点,并在两个新的挂载点之间平均分割存储。但是,这些金额必须根据LUN大小四舍五入: 100gb和1000gb之间=四舍五入到最接近的50gb(即100、150、200等)
如果cell1.值>=4096且<6144,则
范围(“x1”)=单元1.Value/3
范围(“x2”)=单元1.Value/3
范围(“x3”)=单元格1.Value/3
ElseIf cell1.值>=2048,然后<4096
范围(“x1”)=单元格1.Value/2
范围(“x2”)=单元1.Value/2
...
您的问题似乎仍然有漏洞,因为您要检查的值不是问题所述的值,但这里有一个概念可以让您开始
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
这是一个非常模糊的描述。你有没有一个例子来告诉我们你的意思?我对我想做的事情做了进一步的澄清
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