VBA按钮读取和复制值到其他单元格

时间:2013-09-09 04:27:41

标签: vba

Sub Button1Click()

Dim temp As Worksheet
Set temp = ThisWorkbook.Worksheets("Input")

Dim tempAct As String
Dim tempCC As String
Dim tempRan As String

tempAct = Range("B1").Value
tempCC = Range("B2").Value
tempRan = Range("B3").Value

If temp.Range("B1:B3").Value = "" Then
MsgBox ("Blank Input!")

ElseIf temp.Range("B1:B3").Value <> "" Then
temp.Range("C1").Value = tempAct
temp.Range("C2").Value = tempCC
tmep.Range("C3").Value = tempRan
End If
End Sub

我正在尝试按下此按钮时创建一个简单的代码,它只是将单元格值复制到另一个单元格上,还有任何想法如何将输入结果放入列表框中?

生成此宏时,我收到Type Missmatch错误。

1 个答案:

答案 0 :(得分:0)

我认为由于这一行而出现类型不匹配

If temp.Range("B1:B3").Value = "" Then

我不相信你可以将条件应用于范围内的所有细胞。如果你的范围是单个单元格,即Range("B1").Value,则条件语句在语法上是正确的,但当然不会给你想要的结果。

您可以使用For循环来测试每个单元格,如下所示。

Sub Button1Click()

    Dim temp As Worksheet
    Dim rng As Range
    Dim Cancel As Boolean

    Cancel = False

    Set temp = ThisWorkbook.Worksheets("Input")

    Dim tempAct As String
    Dim tempCC As String
    Dim tempRan As String

    tempAct = Range("B1").Value
    tempCC = Range("B2").Value
    tempRan = Range("B3").Value

    Set rng = temp.Range("B1:B3")
    For Each cell In rng
        If IsEmpty(cell) Then
            MsgBox ("Blank Input!")
            Cancel = True
            Exit For
        End If
    Next

    If Cancel = False Then
        temp.Range("C1").Value = tempAct
        temp.Range("C2").Value = tempCC
        temp.Range("C3").Value = tempRan
    End If
End Sub