Java 溢出函数/计算

Java 溢出函数/计算,java,function,vba,loops,Java,Function,Vba,Loops,我正在寻找一个函数,该函数允许单元格/变量/索引填充到某一点,但一旦该单元格/变量/索引超过给定阈值,它将溢出并开始填充下一个单元格/变量/索引。我正在使用VisualBasic(excel),但我确信我可以将java等的示例函数转换为我所需要的 基本上,我在服务器上有挂载点,当服务器存储达到2TB限制时,它会创建一个新的挂载点,并在两个新的挂载点之间平均分割存储。但是,这些金额必须根据LUN大小四舍五入: 100gb和1000gb之间=四舍五入到最接近的50gb(即100、150、200等)

我正在寻找一个函数,该函数允许单元格/变量/索引填充到某一点,但一旦该单元格/变量/索引超过给定阈值,它将溢出并开始填充下一个单元格/变量/索引。我正在使用VisualBasic(excel),但我确信我可以将java等的示例函数转换为我所需要的

基本上,我在服务器上有挂载点,当服务器存储达到2TB限制时,它会创建一个新的挂载点,并在两个新的挂载点之间平均分割存储。但是,这些金额必须根据LUN大小四舍五入: 100gb和1000gb之间=四舍五入到最接近的50gb(即100、150、200等) 在1000gb和2000gb之间=四舍五入到最接近的250gb(即1000、1250、1500等)

下面是我的一个示例,我试图在foreach循环中执行此操作,但它没有执行我需要的操作(这也是excel vba):

rng1中每个cell1的

如果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