在工作表sheet1中有单元格A2与组合框combobox1:
1.当选择combobox1下的不同选项时A2中的数据发生改变;
2.如果向A2中手工输入数据时则组合框中显示“手工数据”;请教高手如何实现?谢谢~

解决方案 »

  1.   


    Private Sub ComboBox1_Change()
       Sheets("sheet1").Range("$A$1").Value = ComboBox1.Text
    End SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Target.Address = "$A$1" Then
         ComboBox1.Text = "手工数据"
      End If
    End Sub
      

  2.   

    Private Sub ComboBox1_Change()
            Range("A2").Value = ComboBox1.ValueEnd Sub
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address(False, False, xlA1) = "A2" Then
            ComboBox1.Text = "手工数据"
        End If
    End Sub
    第2条是什么意思。像A2中输入数据时,combbox1中显示“手工数据”这几个字,还是显示手工入力的数据。
      

  3.   

    TO: fvflove 
    先膜拜一下大牛,请教为什么在 Worksheet_Change写如下的代码会使 A1单元格 和 组合框 发生相互循环导致组合框中记录不能正常显示??高手能否推荐一两本VBA的好书?谢谢~
      

  4.   

    Private Sub Worksheet_Change(ByVal Target As Range) 
    用这个会出问题的.解释:  Worksheet_Change 事件中 更改为 ComboBox1.Text 为 "手工数据" 这时候会引发 Combobox1 的 Change 事件.而
    ComboBox1_Change() 中 更改了 Range("A2").Value 的数据是 ComboBox1.Value 
    这时 引发了 Worksheet_Change 事件'''''......循环中.
    你看一下我用的是:
    Worksheet_SelectionChange 事件.