基于字体的macros单元格偏移量?

我试图做一个基于字体名称的VBA中的单元格偏移,但由于某种原因,它不工作。 该计划是如果字体是Ariel然后复制单元格到前一列。 它运行,但没有任何反应?

Sub FontOffset() Dim cell As Range For Each cell In Range("B:B") If cell.Value = cell.Font.Name = "ARIAL" Then cell.Offest(0, -1).Value = cell.Value End If Next End Sub 

谢谢,

Ĵ

 If cell.Value = cell.Font.Name = "ARIEL" Then 

上面的语句parsing为'cell.Font.Name =“ARIEL”将是True或False; 如果单元格值为True或False,则inputIf语句 。 此外,由于string比较是区分大小写的,并且Ariel字体通常是适当的,所以这永远不会是真的。

试试看,

 If UCase(cell.Font.Name) = "ARIEL" Then 

在相关主题上,您正在检查B列B1到B1048576中的每个单元格。 把它放在工作表的Used Range,这样你就不用浪费时间检查空白单元格。

 Sub FontOffset() Dim cell As Range For Each cell In Intersect(Range("B:B"), ActiveSheet.UsedRange) If UCase(cell.Font.Name) = "ARIAL" Then cell.Offset(0, -1).Value = cell.Value End If Next cell End Sub