从基于不同单元格的单元格复制文本回答

时间:2015-07-28 08:56:15

标签: vba copy formula

我正在尝试创建一个订单表单,复制客户在C8中的地址详细信息:C13,我在单元格G15中创建了一个下拉列表,询问客户的帐单地址是否相同 - 是或否,如果答案是肯定的我希望将来自c8:c13的数据复制到C16:C21

或者我可以隐藏行C16:C21?

我最初尝试纠正IF公式,但它只返回true或false。

1 个答案:

答案 0 :(得分:1)

我认为这可能会解决你的问题。

  1. 在您想要的任何单元格上创建一个ActiveX ComboBox(让我们坚持您想要的相同单元格,因此单元格G15);
  2. 打开Visual Basic( 开发人员> Visual Basic );
  3. 插入模块( 插入>模块
  4. 现在让我们插入模块代码来填充组合框:

    Private Sub Workbook_Open()
        With Sheet1.ComboBox1
            ' Clear values
            .Clear
            ' Populate list
            .AddItem "Yes"
            .AddItem "No"
         End With
     End Sub
    
  5. 在您的模块上输入以下代码:

    Sub copyThis()
        'Defining the variables
        Set adressBill = Range("C8:C13")
        Set destBill = Range("C16:C21")
    
        'If the combobox is Yes then copy
        If Sheet1.ComboBox1.Value = "Yes" Then
            adressBill.Select
            Selection.Copy
            destBill.Select
            ActiveWorkbook.Worksheets("Sheet1").Paste        
        End If    
    End Sub
    
  6. 如果您想在组合框值更改时更新值,只需点击开发者标签上的 设计模式 ,然后选择你的组合框并点击查看代码并将此代码放入其中:

    Private Sub ComboBox1_Change()
        'Calling the function whenever a value changes
        Call copyThis
    End Sub
    
  7. 结果: Results

    此方法比公式(并且可能更安全)更容易,因为您无法在公式中直接引用组合框对象(直接)。相反,您可以在ComboBox中使用 LinkedCell属性