将值分为两个不同的变量

我以为我已经解决了一个问题,但是现在我面临另一个问题……VBA太难了。

   For i = 2 To LastRow
    For j = 2 To LastCol
        '
        '*There is lots of code here....*
        '
        salk = Sheets("SheetS").Cells(i, j).Value
        presence = WorksheetFunction.CountIf(Range("B1:D19"), salk)
        
        
                Dim arrOutput(2)
                
                Select Case presence
                    Case 1
                        Sheets("SheetX").Cells(i, j).Value = salk & " (" & GroupCol(salk) & ")"
                    Case 2
                        arrOutput(0) = Int(GroupCol(salk) / presence)
                        arrOutput(1) = GroupCol(salk) - arrOutput(0)
                        arrOutput(2) = 0
                   
                        Sheets("SheetX").Cells(i, j).Value = salk & " (" & arrOutput(0) & " - " & arrOutput(1) & ")"
                    Case Else
                        MsgBox "Error"
                End Select
    Next j
Next i

通过上面的代码,我设法获得了以下结果: 在此处输入图片说明

我对将奇数分解为两个不同数字的代码感到非常满意。因此,我不必将人员减半。当一个组的结果偶数时,可以将其划分为两个相同的数。当它很奇怪数则变得非常困难。Dave帮助我确定了奇数。我已经在代码中实现了Dave的代码。您会看到所有括号中的内容都是一个团队中一个组的总人数。您会看到4a4共有39个。由于该组出现了两次,因此我想将该组分成两部分。当我得到18.5分时,Dave(已实现)的代码使我能够获得以下两个数字19和20。我的问题是,在两个组中分别获得这两个单独的数字,团队名称C的组将获得19(请参见图片中的B2),而另一个数字20将获得B6。调整后,我得到以下图像:

在此处输入图片说明

因为select的情况是在循环中,所以我不能将它们保留到单独的变量中:(...有没有办法得到我想要的。

马格南

我有一个潜在的解决方案(花了我一些时间,算法质量不是很好)

而不是做:

Sheets("SheetX").Cells(i, j).Value = salk & " (" & arrOutput(0) & " - " & arrOutput(1) & ")"

Case 2你可以试试(你将不得不去适应我的代码,我试了一个例子的personnal):

' ====== ALGO START
' The following calculate the number of times salk appears before the current cell  
Select Case i    ' Depends on the ROWS since you CAN'T use a range which is not continuous with COUNTIF!
    Case 1
        presenceCurr = WorksheetFunction.CountIf(Range("B1" & ":" & Cells(i, j).Address), salk)
    Case 2
        presenceCurr = WorksheetFunction.CountIf(Range("B2" & ":" & Cells(i, j).Address), salk) _
                 + WorksheetFunction.CountIf(Range("B1:D1"), salk)
    Case 3
        presenceCurr = WorksheetFunction.CountIf(Range("B3" & ":" & Cells(i, j).Address), salk) _
                 + WorksheetFunction.CountIf(Range("B1:D2"), salk)
    Case 5
        ' etc ...

    ' All the other Cases

    Case 19
        presenceCurr = WorksheetFunction.CountIf(Range("B19" & ":" & Cells(i, j).Address), salk) _
                 + WorksheetFunction.CountIf(Range("B1:D18"), salk)
    Case Else       ' Should not happen
        MsgBox "Error, out of range"
End Select
presenceCurr = presenceCurr - 1    ' Minus 1 because the current cell would be counted
' ===== ALGO END

Sheets("SheetX").Cells(i, j).Value = salk & " (" & arrOutput(presenceCurr) & ")"    

我不太确定这是否行得通,因为我想"B1:D19"(与范围有关)与您的嵌套for循环相关联。

如前所述,您可能必须修改此代码。重要的是这个主意:我发现在当前单元格之前找到了salk的次数(在您的示例中为0或1),并将其与数组中的位置相关联:

Select Case本来是真的短我你曾经环绕在列则行,但...

注意:这是一个快速而肮脏的代码,可以对我进行明显的优化和分解(例如,使用for循环而不是select case

无论如何,我希望这会有所帮助,您可以用它来做您想要的事情

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何同时将两个不同的值分配给两个变量

来自分类Dev

R:将变量级别分为两个变量

来自分类Dev

MySQL:将结果分为两个不同的列

来自分类Dev

将两个$ _GET变量拆分为路径

来自分类Dev

使用for循环将键值对分为两个变量

来自分类Dev

将输出拆分为两个变量

来自分类Dev

jQuery-如何将变量拆分为两个不同的ajax请求,然后使用成功数据

来自分类Dev

同一变量“ args”的两个不同值

来自分类Dev

如何将模式分为两个两列但行不同

来自分类Dev

如何有效地将bash变量分为两个变量

来自分类Dev

AWK-比较两个不同文件中两个变量的值

来自分类Dev

AWK-比较两个不同文件中两个变量的值

来自分类Dev

Java:将字符串在两个不同的点拆分为3个部分

来自分类Dev

如何将一个数组拆分为两个不同的数组?

来自分类Dev

将地图分为两个列表

来自分类Dev

如何将两个连续的输入分配给两个不同的变量?

来自分类Dev

将变量除以两个值并仍返回两个值

来自分类Dev

将两个不同的特定csv列的值相加

来自分类Dev

使用功能性JavaScript将数组分为两个不同的数组

来自分类Dev

Java:将字符串在两个不同的点拆分为3部分

来自分类Dev

如何基于过滤器将CSV数据分为两个不同的Kafka主题

来自分类Dev

xsl 1.0将元素拆分为两个不同的表

来自分类Dev

如何将两个单元格拆分为不同数量的行?

来自分类Dev

将文本文件分为两个不同的部分

来自分类Dev

将 XML 提要拆分为两个不同的 PHP 文件

来自分类Dev

如何将大字符串拆分为两个不同的数组?

来自分类Dev

如何将路径分为两个不同的类别 - 是文件/是文件夹

来自分类Dev

如何将.txt中的两个值分隔为两个不同的文件?

来自分类Dev

根据唯一值python将一个列表分为两个列表

Related 相关文章

  1. 1

    如何同时将两个不同的值分配给两个变量

  2. 2

    R:将变量级别分为两个变量

  3. 3

    MySQL:将结果分为两个不同的列

  4. 4

    将两个$ _GET变量拆分为路径

  5. 5

    使用for循环将键值对分为两个变量

  6. 6

    将输出拆分为两个变量

  7. 7

    jQuery-如何将变量拆分为两个不同的ajax请求,然后使用成功数据

  8. 8

    同一变量“ args”的两个不同值

  9. 9

    如何将模式分为两个两列但行不同

  10. 10

    如何有效地将bash变量分为两个变量

  11. 11

    AWK-比较两个不同文件中两个变量的值

  12. 12

    AWK-比较两个不同文件中两个变量的值

  13. 13

    Java:将字符串在两个不同的点拆分为3个部分

  14. 14

    如何将一个数组拆分为两个不同的数组?

  15. 15

    将地图分为两个列表

  16. 16

    如何将两个连续的输入分配给两个不同的变量?

  17. 17

    将变量除以两个值并仍返回两个值

  18. 18

    将两个不同的特定csv列的值相加

  19. 19

    使用功能性JavaScript将数组分为两个不同的数组

  20. 20

    Java:将字符串在两个不同的点拆分为3部分

  21. 21

    如何基于过滤器将CSV数据分为两个不同的Kafka主题

  22. 22

    xsl 1.0将元素拆分为两个不同的表

  23. 23

    如何将两个单元格拆分为不同数量的行?

  24. 24

    将文本文件分为两个不同的部分

  25. 25

    将 XML 提要拆分为两个不同的 PHP 文件

  26. 26

    如何将大字符串拆分为两个不同的数组?

  27. 27

    如何将路径分为两个不同的类别 - 是文件/是文件夹

  28. 28

    如何将.txt中的两个值分隔为两个不同的文件?

  29. 29

    根据唯一值python将一个列表分为两个列表

热门标签

归档