2016-03-04 112 views
0

简单地说:我正在寻找一个代码,它将来自单元格c3的文本放入c5:c75中的一系列单元格中。
例如在范围(c5:c75)中,如果单元格c5和c6已经有文本,我想用我的文本填充单元格c7。 另一个例子是:如果单元格c5和c7有文本,但单元格c6没有任何文本,我希望我的文本去那里。使用宏将单元格文本排序到excel中的单元格区域

现在我的代码似乎并不理想,但它是这样的:

Sub check text() 
     'In range A1: =Countif(c5:c75;"<>"&"") 
If Range("A1") = "0" Then 
Range("c5") = Range("c3") 

ElseIf Range("A1") = "1" Then 
Range("c6") = Range("C3") 

ElseIf Range("A1") = "2" Then 
Range("C7") = Range("c3") 

'And it keeps going until: 

ElseIf Range("A1") = "74" then 
Range("c75") = Range("c3") 

ElseIf Range("A1") = "75" then 
Msgbox("range is full") 

End if 

的问题是它的规模巨大,并为它停止工作,如果我有文本的单元格之间的空白单元格。例如,如果单元格c5具有文本,则单元格c6为空,单元格c7具有文本。该代码不会工作。

感谢您的时间;-)

+0

请张贴您的代码。谢谢! – 2016-03-04 00:36:18

回答

0

通过所有寻找一个空白单元格的循环似乎是一个大量的工作使用xlCellTypeBlanks当所有的空格或第一个空的可以与Range.SpecialCells method检索xlCellType Enumeration

With Worksheets("sheet1") 
    With .Range("C5:C75") 
     If Not .SpecialCells(xlCellTypeBlanks) Is Nothing Then 
      .SpecialCells(xlCellTypeBlanks).Cells(1) = .Parent.Range("C3").Value 
     Else 
      Msgbox("range is full") 
     End If 
    End With 
End With 

这将定位在C5第一空白单元格:C75范围,并与来自C3的值填充它。

相关问题