2016-11-21 108 views
0

我将如何重写这个单元格公式正确工作?如何在循环中获取特定的单元格范围?

For lineNum = 1 To UBound(reportArray, 2) 
    With scanSheet 
     .Cells(baseRow, 1) = reportArray(1, lineNum) 
     .Cells(baseRow, 2) = reportArray(2, lineNum) 
     .Cells(baseRow, 3).Formula = "=IF(LEN(B&baseRow)>3,TRIM(LEFT(TRIM(B&baseRow),2)),B&baseRow)" 
     .Cells(baseRow, 4).Formula = "=IF(LEN(B&baseRow)>3,TRIM(RIGHT(TRIM(B&baseRow),2)),B&baseRow)" 
    End With 
    baseRow = baseRow + 1 
Next lineNum 
+0

你的意思是结合'baseRow'字母'B'进行有效的单元格引用?如果是这样,则语法是例如'LEN(“B”&baseRow)...' –

+0

是的,但它仍然给我错误 –

+0

张贴更多的代码,让人们理解上下文。也发布错误和线路上发生... –

回答

0

更改2线式的,以下面的代码(假设baseRow具有多个指示的行数的值):

.Cells(baseRow, 3).Formula = "=IF(LEN(B" & baseRow & ")>3,TRIM(LEFT(TRIM(B" & baseRow & "),2)),B" & baseRow & ")" 
    .Cells(baseRow, 4).Formula = "=IF(LEN(B" & baseRow & ")>3,TRIM(RIGHT(TRIM(B" & baseRow & "),2)),B" & baseRow & ")" 

:在将来使用一个“帮助“字符串。

Dim str As String 
str = "=IF(LEN(B" & baseRow & ")>3,TRIM(LEFT(TRIM(B" & baseRow & "),2)),B" & baseRow & ")" 
Debug.Print str 

然后,你会得到即时窗口中的公式字符串:

=IF(LEN(B2)>3,TRIM(LEFT(TRIM(B2),2)),B2) 
相关问题