Excel, используя Visual Basic во время работы макроса - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь использовать код VBA при запуске макроса в Microsoft Excel.

Я запускаю макрос от "RecordMacro" в Excel.

Во время макроса мне нужно использовать некоторый код 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

1 Ответ

0 голосов
/ 31 октября 2018

Я вставил модуль и вставил в него вышеуказанный код.

Затем я ввожу две ячейки, 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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...