Excel VBA基于单元格数据

时间:2015-07-06 13:20:08

标签: excel vba cells

所以我想创建一些东西,当“X”进入相应的单元格时会创建X个单元格,然后用数字计算到X的那些单元格填充。

由于我无法输入图片,因此我创建了一个我想要实现的粗略示例。

表格如何开始

... | ........甲........ | .............乙........... .... | ..........ç........

1 | .................. | 输入以下数据。|

2. | 问题1 | _______________ |

3. | 问题2 | _______________ |

4. | 问题3 | _______________ |

输入数据,(“问题1”无效,但输入问题2“B3”后将创建单元格)

... | ........甲........ | .............乙........... .... | ..........ç........

1 | .................. | 输入以下数据。|

2. | 问题1 | _____回答____ |

3. | 问题2 | _______ _______ 3 |的< ---------------

4. | 问题3 | _______________ |

然后根据输入“B3”的金额创建一定数量的单元格

... | ........甲........ | .............乙........... .... | .......... C ........

1 | .................. | 输入以下数据。|

2. | 问题1 | _____回答____ |

3. | 问题2 | _______ 3 _______ |

4. |的 Q1 .............. | _______________ |的< ---------------

5 |的 Q2 .............. | _______________ |的< ---------------

6. |的 Q3 .............. | _______________ |的< ---------------

7. | 问题3 | _______________ |

如果有人能提供帮助,那将非常感激。随意询问任何其他信息。

1 个答案:

答案 0 :(得分:0)

将其粘贴到您感兴趣的工作表模块中:

Public InModif As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)

If InModif = True Then Exit Sub
Application.ScreenUpdating = False
InModif = True

Dim NbInsert As Integer

If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Me.Columns(2)) Is Nothing Then
    If IsNumeric(Target.Value) Then
        NbInsert = CInt(Target.Value)
        Do While NbInsert <> 0
            Rows(Target.Offset(1, 0).Row).Insert Shift:=xlDown
            Target.Offset(1, 0).Value = NbInsert
            Target.Offset(1, -1).Value = "Q" & NbInsert
            NbInsert = NbInsert - 1
        Loop
    Else
    End If
Else
End If

InModif = False
Application.ScreenUpdating = True

End Sub