標題:
錄製VBA小毛病
[打印本頁]
作者:
louiswei1986
時間:
2016-6-3 09:30
標題:
錄製VBA小毛病
各位大大,我錄製的巨集如下,大概功能就是K2+L2,K3+L3...最後再取代K欄,
我的VBA可能錄的比較醜,但是功能上大致是可以使用的。
最大的問題就是 Selection.AutoFill下拉函式的時候,
我沒辦法確定這個檔案有多少列,所以它會一直補0到9999列。
想請問這類型判別是否一定要使用迴圈才能解決?
感謝各位。
Sub 巨集2()
'
' 巨集2 巨集
'
'
Range("P2").Select
Selection.NumberFormatLocal = "G/通用格式"
ActiveCell.FormulaR1C1 = "=RC[-5]+RC[-4]"
Range("P2").Select
Selection.AutoFill Destination:=Range("P2:P9999")
Range("P2:P9999").Select
Selection.Copy
Range("K2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L:M,P:P").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("A:A").ColumnWidth = 19.25
Range("L:M,1:1048576").Select
Range("O1").Activate
Selection.Columns.AutoFit
Selection.Rows.AutoFit
With Selection.Font
.Name = "微軟正黑體"
.Name = "Century Gothic"
End With
Range("A2").Select
End Sub
作者:
GBKEE
時間:
2016-6-4 07:25
本帖最後由 GBKEE 於 2016-6-5 07:16 編輯
回復
1#
louiswei1986
我沒辦法確定這個檔案有多少列,所以它會一直補0到9999列
可以觀察工作表上的數據指定自動填滿儲存格位置
Option Explicit
Sub EX()
If Range("F1") > Range("P2").Row Then '** Range("F1")的數值 > Range("P2").Row(列號)
Range("P2").AutoFill Range("P2:P" & Range("F1"))
End If
End Sub
'*****************
Sub EX_1()
If Range("F1") > 0 Then '** 儲存格進行自動填滿的列數
With Range("P2")
.AutoFill .Cells.Resize(Range("F1"))
End With
End If
End Sub
複製代碼
作者:
louiswei1986
時間:
2016-6-20 15:06
回復
2#
GBKEE
超級版主您好,小弟愚魯,
不知道F1是哪裡來的呢?
測試這兩個巨集都是根據F1的值來運算多少列,
我的需求是希望他能計算到以B欄為主,
如果B欄是空白就停止。
再懇請指點。
作者:
GBKEE
時間:
2016-6-21 05:23
回復
3#
louiswei1986
可以觀察工作表上的
數據
指定自動填滿儲存格位置
假設Range("F1") 如有公式=COUNTA(P2:P65536)
須依你工作表來判斷
With Range("P2")
.AutoFill .Cells.Resize( 要帶入的數值 )
End With
複製代碼
作者:
louiswei1986
時間:
2016-6-24 09:11
回復
4#
GBKEE
好的,再嘗試看看,感謝。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)