2016-11-21 121 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) 
相關問題