2016-11-16 7 views
0

Я добавил простой макрос в свой Excel, но, похоже, мой компьютер сильно разбился. Кто-нибудь знает, почему?Excel сбой после добавления макроса

Вот макрос:

Sub PlanRelativityTesting() 
With Sheets("Sheet1") 
For i = 8 To 9 
.Range("D11").value = .Range("G" & i).value   
Call AnotherMacro 
Sheets("Sheet2").Select  
     .Range("H" & i).value = Sheets("Sheet2").Range("AE20").value 
     .Range("I" & i).value = Sheets("Sheet2").Range("AE21").value 
     .Range("J" & i).value = Sheets("Sheet2").Range("AE22").value 
     .Range("K" & i).value = Sheets("Sheet2").Range("AE23").value 
     .Range("L" & i).value = Sheets("Sheet2").Range("AE24").value 
     .Range("M" & i).value = Sheets("Sheet2").Range("AE25").value 
     .Range("N" & i).value = Sheets("Sheet2").Range("AE26").value 
     .Range("O" & i).value = Sheets("Sheet2").Range("AE27").value 
     .Range("P" & i).value = Sheets("Sheet2").Range("AE28").value 
     .Range("Q" & i).value = Sheets("Sheet2").Range("AE29").value 
     .Range("R" & i).value = Sheets("Sheet2").Range("AE30").value 
     .Range("S" & i).value = Sheets("Sheet2").Range("AE31").value 
Next i  
.Select 
End With 
End Sub 
+2

Почему не вы просто назначаете транспонирование одного диапазона другому? Кроме того, поскольку ваш код относится к таинственным «AnotherMacro» - как кто-нибудь может сказать, в чем проблема? Код, который вы показываете, является беспроблемным (хотя и ненужным подробным). –

+0

Вы также проверили функцию вызова? В зависимости от того, насколько велика ваша листка и версия excel (x64 или x86), вы можете работать с пределом RAM 2 ГБ. Вы также можете использовать относительный адрес для ячеек, поэтому вам не нужно вводить столько кода, т. Е. Range (Cells (1, 1), Cells (5, 3)) - это A1: C5 и позволяет перебирать оба строки и столбца. Транспонирование - это более простое решение, если это то, что вы пытаетесь сделать. – Zediiiii

+0

привет, Zediiiii, Спасибо за комментарий! Он работает на 32-битном Excel, и это 39 КБ. Значит, размер, вероятно, не проблема? Не могли бы вы подумать о другой причине? – JBB

ответ

1

Как Иоанн отмечает, что ваш код может быть более кратким:

Sub PlanRelativityTesting() 
    With Sheets("Sheet1") 
     For i = 8 To 9 
      .Range("D11").Value = .Range("G" & i).Value 
      AnotherMacro 
      .Range("H" & i).Resize(1, 12).Value = _ 
      Application.Transpose(Sheets("Sheet2").Range("AE20").Resize(12, 1).Value) 
     Next i 
     .Select 
    End With 
End Sub 

Действительная проблема, хотя, скорее всего, будет в AnotherMacro

+0

Благодарим за помощь! Другой Макро должен быть в порядке; он был в модели Excel уже давно. Кажется, что лучше работать, когда я запускаю макрос в исходной модели. Но как только я сохраняю другую копию модели с макросом, она имеет тенденцию к сбою. Файл составляет 39 000 КБ, может быть, поэтому? – JBB

+0

Невозможно сказать, является ли это причиной, но 39MB довольно большой. –

Смежные вопросы