Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excelvba中的变量及其和_Vba_Excel_Variable Variables - Fatal编程技术网

excelvba中的变量及其和

excelvba中的变量及其和,vba,excel,variable-variables,Vba,Excel,Variable Variables,为了缓解夏天的无聊,我决定尝试制作一个Excel程序,根据棋盘游戏《垄断》(board game垄断者)中拥有的房产和房产上的房屋数量(我正在试验的一些新规则),跟踪某人将欠多少钱。我设置了电子表格,这样每个属性都在自己的行中。我希望Excel程序执行以下操作: 假设你在看一个细胞。然后,对于i=1到10(因为我怀疑垄断中超过10个玩家是可行的),如果右边的单元格的值是i,那么将您实际看到的单元格的值添加到玩家i的总和中 我可以生成变量sum1,sum2,sum3,sum10?那么我可以说 su

为了缓解夏天的无聊,我决定尝试制作一个Excel程序,根据棋盘游戏《垄断》(board game垄断者)中拥有的房产和房产上的房屋数量(我正在试验的一些新规则),跟踪某人将欠多少钱。我设置了电子表格,这样每个属性都在自己的行中。我希望Excel程序执行以下操作:

假设你在看一个细胞。然后,对于i=1到10(因为我怀疑垄断中超过10个玩家是可行的),如果右边的单元格的值是i,那么将您实际看到的单元格的值添加到玩家i的总和中

我可以生成变量sum1,sum2,sum3,sum10?那么我可以说

sum'i'=sum'i'+单元格值

如果满足第2段中的条件,是否在for循环内

更新:我已经尝试过这个代码,它可以获得玩家1的总和。然而,它为所有玩家提供了玩家1的总和,并且每当有人购买新财产或升级当前财产时更新都很麻烦(每次更新我都需要重新键入公式)


提前谢谢大家!我几乎没有编程经验,非常感谢您的指导:)

您正在寻找阵列:

Dim varSum(1 To 10) As Variant
'Access it like this:
varSum(i) = xyz

更新的答案
我认为有几点可以改进:

  • 您将
    i
    作为函数的参数,但稍后会重新赋值。更好地命名您的参数
    iPlayer
    (我认为它是需要的)
  • 您想计算特定玩家的总和吗?那么你就不需要一个数组来计算所有玩家的总和了。
    编辑(老实说,你不需要VBA来完成这项工作。请看)
  • 你想计算所有玩家的总数,比如说一个大数目?然后必须在最后一个For循环中写入
    monopolySum=sum(i)

    编辑(在这里你可以使用,但我想你知道)
  • 您可以将所需的范围作为函数的参数,因此不必通过函数将其设置为“硬”。尝试将此
    公共函数monopolySum(iPlayer作为整数,rngGame作为范围)作为变量
  • 你最初问题的答案是正确的?那么应该接受:)

  • 您正在寻找阵列:

    Dim varSum(1 To 10) As Variant
    'Access it like this:
    varSum(i) = xyz
    

    更新的答案
    我认为有几点可以改进:

  • 您将
    i
    作为函数的参数,但稍后会重新赋值。更好地命名您的参数
    iPlayer
    (我认为它是需要的)
  • 您想计算特定玩家的总和吗?那么你就不需要一个数组来计算所有玩家的总和了。
    编辑(老实说,你不需要VBA来完成这项工作。请看)
  • 你想计算所有玩家的总数,比如说一个大数目?然后必须在最后一个For循环中写入
    monopolySum=sum(i)

    编辑(在这里你可以使用,但我想你知道)
  • 您可以将所需的范围作为函数的参数,因此不必通过函数将其设置为“硬”。尝试将此
    公共函数monopolySum(iPlayer作为整数,rngGame作为范围)作为变量
  • 你最初问题的答案是正确的?那么应该接受:)

  • 谢谢@Pira!我将它设置为一个公共函数,但由于某些原因,我无法在工作表的单元格中调用它。嗨@Raman,你确定你使用了
    function
    而不是你问题中的
    Sub
    ?(你说你几乎没有编程经验:)如果你使用过
    函数,但它不起作用,看看这里:(顺便说一下:我想你必须把代码示例的第二段放到
    函数中,谢谢你的提示,@Pira!我更改了代码,但我有一个新问题(请参见“更新”).你觉得怎么样?好的,看看我的更新。很抱歉,我没有解决重新计算问题的方法…我像你说的那样尝试了SUMIF,它就像一个符咒一样工作;不需要VBA。哦,哈哈。非常感谢你的帮助,@Pira!谢谢@Pira!我把它作为一个公共函数,但出于某些原因,我不能在工作表的单元格中调用它on.Hi@Raman,你确定你使用了
    函数
    而不是你问题中的
    Sub
    (你说你几乎没有编程经验:)如果你使用了
    函数
    ,但它不起作用,请看这里:(顺便说一句:我想您必须将代码示例的第二段放入
    Sub
    Function
    中,谢谢您的提示,@Pira!我更改了代码,但我有一个新问题(请参阅“更新”).你觉得怎么样?好的,看看我的更新。很抱歉,我没有解决重新计算问题的方法…我像你说的那样尝试了SUMIF,效果很好;不需要VBA。噢,哈哈。非常感谢你的帮助,@Pira!