各位大神好,以下是我本次的問題。
這邊我原本是用錄的=>有成功
用意是 SPECIFICATION 欄位的內容,最後面都要加上(空格 + Logi Number)
作法:在H欄先插入一欄,透過公式組合兩欄,再把原本欄未取代後刪除。
** 但是討論後,欄位有可能會浮動(機率很低)=>不一定在H和I欄**
後面用原本錄製成功的語法改成下方寫法,
先抓兩欄的相對位置,再透過相對位置做處理,但是卻沒辦法執行成功。
現在的問題是
ActiveCell.FormulaR1C1 = "=RC[1]&""(""&RC[-SL]&"")"""
這一段 SL 是4,但是RC是否不能使用參數的方始寫入?
#有先用MSG顯示過,確實是4
然後就是原本使用
ColCNT = Cells(1, Columns.Count).End(xlUp).Columns To 1 Step -1
但這段語法好像不能用,要用下面的語法。
ColCNT = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
但是我要固定列找行,為什麼第一個寫法不能用。
最後還有第三問
Selection.AutoFill Destination:=Range(Cells(2, Sp), Cells(1000, Sp))
目前是先把範圍拉到一千,我要如何寫才能自動的方式,
讓覆蓋欄位根據資料筆數覆蓋呢?
ActiveCell.FormulaR1C1 = "=RC[1]&""(""&RC[-SL]&"")"""
這一段 SL 是4,但是RC是否不能使用參數的方始寫入?
可以
Sub Macro1()
SL = 4
Debug.Print "=RC[1]&""(""&RC[-" & SL & "]&"")"""
ActiveCell.FormulaR1C1 = "=RC[1]&""(""&RC[-" & SL & "]&"")"""
End Sub
至於
其他部份的問題我實在看不懂是什麼意思
感謝大神的回答。
其他問題主要是因為公式抄來的,所以在定義上不清楚。
底下這列公式,我的解讀是,cells(列,行)
ColCNT = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
如果行(欄)設定=1,那麼rows.count,就是在計算列的總長度。
.End(xlUp).Row To 1 Step -1 這行就是指列的最大的數字
EX:共十列,每跑一次FOR就,row就會-1。
希望這部分沒有解讀錯誤。
然後問題是,我想要固定列,找出有幾欄。不曉得能不能改寫成下面的公式?我自己測試是不行,是否哪裡寫錯?
ColCNT = Cells(1, Columns.Count).End(xlUp).Columns To 1 Step -1
海綿大真厲害,我真的是看不懂。
(1) 如海綿寶寶說的,要把變數與其他文字以 & 相連
(2) 抓最後一行:EndCol = Cells(1, Columns.Count).End(xlLeft).Column
抓最後一列:EndRow = Cells(Rows.Count, 1).End(xlUp).Row
(3) 如果要涵蓋到最後一列:Selection.AutoFill Destination:=Range(Cells(2, Sp), Cells(EndRow, Sp))