2016-07-26 86 views
0
Sub tcptiff() 

Dim TCP As String 
Dim eebo As String 
Dim tiff As String 
Dim facpage As String 

On Error GoTo Errorcatch 

TCP = Range("F1").Value 
tiff = Range("F2").Value 
eebo = ActiveCell(0, 0).Value 
facpage = ActiveCell(, 3).Value 

If IsEmpty(Range(ActiveCell(, 3))) = False Then 
    If Len(eebo) = 2 Then 
     ActiveCell(, 1).Value = TCP & "-" & "00" & Left(eebo, 1) & "-" & Right(eebo, 1) 
     ActiveCell(, 2).Value = tiff & "_Page_" & facpage 

    ElseIf Len(eebo) = 3 Then 
     ActiveCell(, 1).Value = TCP & "-" & "0" & Left(eebo, 2) & "-" & Right(eebo, 1) 
     ActiveCell(, 2).Value = tiff & "_Page_" & facpage 
    End If 

End If 

Errorcatch: 
MsgBox Err.Description 

End Sub 

我想写一个excel宏,以便它填充两列与相邻单元格的相关信息。我在Sheet2代码中编写了宏。我一直在获取object'_Factory的'范围'失败。问题是什么?我试图指定工作表,但这不能解决问题。object'_Worksheet'的方法'范围'失败原因?

+1

你必须WS2设置为实际的工作表。只要告诉VBA它是一张工作表就不会削减它。 – sous2817

+0

oops我上传了错误的副本。我试过ws2 =工作表(“Sheet2”)并添加了ws2。到所有的方法和对象,但宏从未运行。尽管谢谢你的帮助。没有ws2。你会如何修复代码? – pietnam

回答

0

的问题是:

If IsEmpty(Range(ActiveCell(, 3))) = False Then 

ActiveCell(3)已经是一个范围,这样:

If IsEmpty(ActiveCell(, 3)) = False Then 
+0

非常感谢。这是我的一个新人的错误 – pietnam