2015-10-23 114 views
1

我得到一个运行时错误“13”:在下面的代码Set tempChar = Range(Cells(iSourceRow, 31), Cells(iSourceRow, 31))行类型不匹配:如何在Excel VBA中将单元格的文本内容分配给变量?

Sub GetStratGoalResponses() 
' 
' GetStratGoalResponses Macro 
' 
' Keyboard Shortcut: Ctrl g 
' 
    Dim iSourceRow As Integer 
    Dim iTargetRow As Integer 
    Dim tempChar As Characters 

    iTargetRow = 1 

    For iSourceRow = 2 To 28 
     Worksheets("Survey_Responses_Oct_12,_2015").Activate 
     If Range(Cells(iSourceRow, 31), Cells(iSourceRow, 31)) = "" Then End 
     Set tempChar = Range(Cells(iSourceRow, 31), Cells(iSourceRow, 31)) 
MsgBox "About to process Strategic Goal Response ", tempChar 
     Range(Cells(iSourceRow, 31), Cells(iSourceRow, 31)).Select 
     Selection.Copy 
     Worksheets("Strategic Goal Parsed").Activate 
     Range("A2").Select 
     ActiveSheet.Paste 
     Set tempChar = Range("A2") 
MsgBox "Just pasted response of ", tempChar 
     Range("A4:A9").Select 
     Selection.Copy 
     Range(Cells(iTargetRow, 53), Cells(iTargetRow, 53)).Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 
     Application.CutCopyMode = False 
     Range("A2:A2").Select 
     Selection.Clear 
     iTargetRow = iTargetRow + 6 
    Next iSourceRow 
End Sub 
+0

你宣布'tempChar'为'character'不'range'阅读范围()值。 – findwindow

回答

2

你并不需要使用set命令。

使用的字符串,并把它

Dim tempChar as string 
tempChar = Range(Cells(iSourceRow, 31), Cells(iSourceRow, 31)).Value 
msgbox (tempChar) 
+0

谢谢,马修,这很好! – GeorgeInNC

+0

如果此答案已解决您的问题,请考虑单击复选标记以接受此问题。这向更广泛的社区表明,您已经找到了解决方案,并为答复者和您自己提供了一些声誉。没有义务这样做。 – MatthewD

相关问题