- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
2#
發表於 2014-5-1 17:34
| 只看該作者
回復 1# lionliu - Option Explicit
- Sub trnprg()
- Dim myrow As Long
- Dim myrange As Range
- Dim i As Integer
- myrow = Range("a1").End(xlDown).Row
- For i = 2 To myrow
- Set myrange = Cells(i, 1)
- If myrange <> Empty Then
- 'Cells(i, 2).FormulaR1C1 = "=VLOOKUP(" & Cells(1, i) & ",Jsc_Data!A:G,6,FALSE)" '<-是R1C1,但有A:G
-
- 'FormulaR1C1 傳回或設定物件的公式,用巨集語言的 R1C1 樣式符號表示
- 'Cells(i, 2).FormulaR1C1 = "=VLOOKUP(" & Cells(1, i) & ",Jsc_Data!A:C1:C7,6,FALSE)"
-
- 'Formula 傳回或設定 A1 樣式的物件公式
- 'Cells(i, 2).Formula = "=VLOOKUP(" & Cells(1, i) & ",Jsc_Data!A:G,6,FALSE)"
- '
- Cells(i, 2) = "=VLOOKUP(" & Cells(1, i) & ",Jsc_Data!A:G,6,FALSE)" '簡單一點
-
- '但 VLOOKUP 傳回#N/A 時 Cells(i, 5).FormulaR1C1 會錯誤
- Cells(i, 5).FormulaR1C1 = "=CONCATENATE(""代墊款"", "" - "",Left(""" & Cells(i, 2) & """,2))"
- If Not IsError(Cells(i, 2)) Then Cells(i, 5) = "代墊款 - " & Left(Cells(i, 2), 2)
- '何不改為如此
- End If
- Next i
- Set myrange = Nothing
- End Sub
複製代碼 |
|