我试图在Microsoft Excel中运行宏时使用VBA代码。
我正在用Excel中的“ RecordMacro”运行宏。
在宏过程中,我需要使用一些VBA代码。为此,我单击Visual Basic,然后使用一些VBA代码。
在宏过程中,VBA代码按照指定的方式工作,但是当我单击“停止录制”并尝试运行宏时,它会完全丢失VBA部分。
在启动宏之前,VBA代码已经存储在我的工作簿中,因此我不认为这是复制和粘贴问题。
要自己尝试在记录,宏和记录栏中编写数字列表,然后尝试执行以下代码。
Sub SplitColumn()
'Updateby20141106
Dim rng As Range
Dim InputRng As Range
Dim OutRng As Range
Dim xRow As Integer
Dim xCol As Integer
Dim xArr As Variant
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type: = 8)
xRow = Application.InputBox("Rows :", xTitleId)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type: = 8)
Set InputRng = InputRng.Columns(1)
xCol = InputRng.Cells.Count / xRow
ReDim xArr(1 To xRow, 1 To xCol + 1)
For i = 0 To InputRng.Cells.Count - 1
xValue = InputRng.Cells(i + 1)
iRow = i Mod xRow
iCol = VBA.Int(i / xRow)
xArr(iRow + 1, iCol + 1) = xValue
Next
OutRng.Resize(UBound(xArr, 1), UBound(xArr, 2)).Value = xArr
End Sub
答案 0 :(得分:1)
我插入了一个模块,并将上面的代码粘贴到了其中。
然后我输入两个单元格A1 = "1,1"
和A2 = "1,2"
。
接下来,我录制了一个宏,该宏对该系列进行了快速填充至A30。在宏中,我还将字体设置为粗体,然后停止记录。
我打开了记录宏的模块,并添加了行SplitColumn
。运行记录的宏导致执行了前几个步骤,然后运行SplitColumn子例程,然后完成了宏。最重要的是,您可以从另一个子程序调用一个子程序或函数。
Sub flashfill()
'
' flashfill Macro
'
'
Selection.AutoFill Destination:=Range("A1:A30"), Type:=xlFillDefault
Range("A1:A30").Select
SplitColumn
Selection.Font.Bold = True
End Sub
希望有帮助!