需要帮助VBA

时间:2015-10-12 07:32:12

标签: excel-vba vba excel

我有一个包含aae的100个Nos的转换批次作为变体。我需要将a计为b转换& ac转换,同上到aae并复制结果&粘贴到另一个ab关系的单元格中。

由Tony Dallimore编辑。这是您的数据的样子:

         ----- Columns -----
    Row   L M N O P Q R S T U
      11  b e h k c b e h k c
      12  b e h k f b e h k f
      13  b e h k i a d g j i
      14  b e h k b a d g j e
      15  b e h k c b e h k c
      16  b e h k f b e h k f
      17  b e h k i a d g j i
      18  b e h k c a d g j c
      19  b e h k f b e h k f
      20  b e h k i b e h k i

这是excel中的正确表格。

从上表中,我创建了另一个表,如下所示,

    V   W   X   Y   Z   AA  AB  AC  AD  AE

58  SUM reference changes       a   d   4
59                                  
60  0   0   0   0   0   0   0   0   0   0
61  0   0   0   0   0   0   0   0   0   0
62  0   0   0   0   0   0   1   0   0   0
63  0   0   0   0   0   0   1   0   0   0
64  0   0   0   0   0   0   0   0   0   0
65  0   0   0   0   0   0   0   0   0   0
66  0   0   0   0   0   0   1   0   0   0
67  0   0   0   0   0   0   1   0   0   0
68  0   0   0   0   0   0   0   0   0   0
69  0   0   0   0   0   0   0   0   0   0

AE58 =SUM(V60:AE69)

的公式

V60 =IF(OR(L11&U20=$AC$58&$AD$58,L11&U20=$AD$58&$AC$58),1,0)

的公式

AE69 =IF(OR(U20&T20=$AC$58&$AD$58,U20&T20=$AD$58&$AC$58),1,0)

的公式

我正在从AC58aAD58手动更改bk。然后我将AE58逐个复制到另一张桌子。然后,我将AC58更改为b,将AD58c更改为k。目前我正在手动完成。下面是我粘贴数据的表格。

    AG  AH  AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR

10      a   b   c   d   e   f   g   h   i   j   k
11  a   
12  b   1
13  c   1
14  d   4
15  e   
16  f   
17  g   
18  h   
19  i   
20  j   
21  k

很抱歉这个混乱。我没有正确地说出我的问题。我无法附上excel表。

**手动计算&更新答案表**

   AG  AH   AI  AJ  AK  AL  AM  AN  AO  AP  AQ  AR  

10      a   b   c   d   e   f   g   h   i   j   k
11  a                                           
12  b   1                                       
13  c   1   5                                   
14  d   4                                       
15  e       17                                  
16  f       6                                   
17  g               4                           
18  h                   16                      
19  i   2   4                                   
20  j           1       1       4       2       
21  k       1   5           6       16  4   

从评论中复制:

我记录的Macro的一部分我正在尝试做什么,

 Sub Macro2()
    '
    ' Macro2 Macro
    '

    '
        Range("AC58").Select
        ActiveCell.FormulaR1C1 = "a"
        Range("AD58").Select
        ActiveCell.FormulaR1C1 = "b"
        Range("AE58").Select
        Selection.Copy
        Range("AH12").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,   SkipBlanks _
            :=False, Transpose:=False
        Range("AD58").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "c"
        Range("AE58").Select
        Selection.Copy
        Range("AH13").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("AD58").Select
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "d"
        Range("AE58").Select
        Selection.Copy
        Range("AH14").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "e"
        Range("AE58").Select
        Selection.Copy
        Range("AH15").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "f"
        Range("AE58").Select
        Selection.Copy
        Range("AH16").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
        ActiveCell.FormulaR1C1 = "g"
        Range("AE58").Select
        Selection.Copy
        Range("AH17").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,     SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False
    End Sub

以上代码我在工作时手动录制。仅供参考粘贴相同。

2 个答案:

答案 0 :(得分:0)

100个连续班次列表中的班次组合计数

此答案是对提问者的修订要求的解决方案。

我发布了这个答案,因为提问者改变了原来的要求,因此需要一个与第一个发布不同的解决方案。我决定留下这两种解决方案,以便其他用户可能面临任何这些情况。

要求:从ak有11个班次,每个班次都有100个回合的列表。目标是计算列表中有多少班次组合,即班次从a更改为b {{ 1}}到baa cc,... a到{{ 1}} jk。移位是连续的,即kj的延续,Row 2Row 1的延续。

假设:轮班列表位于Cell 1范围内,结果公布范围Cell 100 (根据需要更改)

以下代码生成所需的 Shift组合数,另外还有 Shifts Turns 的计数(参见图1)

有兴趣深入了解代码中使用的资源的用户可以访问以下页面:

Variables & ConstantsExcel ObjectsWith Statement

For...Next StatementFor Each...Next StatementGoSub...Return Statement

Split FunctionCustom Number FormatRange Properties (Excel)

我还在代码中包含了一些注释,指出了其中每个段的用途。不过,请告诉我有关代码及其中使用的资源的任何问题。快乐阅读!!!

L11:U21

enter image description here

希望你觉得这个答案很有用,即使你现在还有一些你不太了解的东西,希望这些新东西会激发你的兴趣,好奇心并激励你更多地了解编程。

答案 1 :(得分:-1)

100个连续班次列表中的班次转换次数

此答案是对提问者的原始要求的解决方案。

要求:从ak有11个班次,每个班次都有100个回合的列表。目标是计算在他们之间发生转换的次数即,转换次数从a更改为ba到{{ 1}},... cj。移位是连续的,即kRow 2的延续,Row 1Cell 1的延续。

假设:班次列表位于Cell 100范围内,结果在范围L11:U21 中发布(根据需要更改) < / p>

以下代码生成所需的 Shift转换计数,另外还有 Shifts Turn 的计数(参见图1)

有兴趣深入了解代码中使用的资源的用户可以访问以下页面:

Variables & ConstantsExcel ObjectsWith Statement

For...Next StatementFor Each...Next StatementGoSub...Return Statement

Split FunctionCustom Number FormatRange Properties (Excel)

我还在代码中包含了一些注释,指出了其中每个段的用途。不过,请告诉我有关代码及其中使用的资源的任何问题。快乐阅读!!!

AG10:AS22

enter image description here

希望你觉得这个答案很有用,即使你现在还有一些你不太了解的东西,希望这些新东西会激发你的兴趣,好奇心并激励你更多地了解编程。