Encontrei alguns erros pequenos, mas cruciais no código.
- Em "CreateNewSheet",
Sheet
precisava serSheets
A planilha não estava referenciando nada, daí o erro "Objeto obrigatório" - Ao selecionar o novo intervalo para colar, eu usei por engano
+
em vez de&
Yielding my type mismatch. Nota: Então eu percebi uma vez que eu poderia executar o meu código que eu estava copiando-os para sua linha original, bastante irritante, Corrigido, copiando para a mesma linha.
Eu postei meu código alterado abaixo.
Sub TestRowThree() Dim row As Integer row = 3 CopyRow (row) End Sub Sub CreateNewSheet(strName As String) Sheets.Add.Name = strName End Sub Sub CopyRow(rowNum As Integer) Dim mainSheetName As String mainSheetName = ActiveWorkbook.ActiveSheet.Name Dim newSheetName As String newSheetName = Sheets(mainSheetName).Range("$A$" & rowNum).Value Sheets(mainSheetName).Select Range("A" & rowNum & ":H" & rowNum).Copy CreateNewSheet (newSheetName) Sheets(newSheetName).Select Range("A1:H1").Select ActiveSheet.Paste End Sub