Присвоить значение ячейке в Excel VBA вылетает VBA без сообщения
Я использую Excel 2016 32-bit и Excel 2019 32-bit. В обеих версиях Excel программист назначает остановку выполнения VBA без какого-либо сообщения.
Настройки Центра управления безопасностью установлены на "Включить все макросы" и "Доверить доступ к модели проекта VBA".
Расчеты работают и верны.
Код, с которым я работаю, приведен ниже. Выполнение прекращается, когда значение переменной LL95 назначается ячейке. На этом этапе VBA останавливается без какого-либо сообщения.
' Compute 95%, 85% and 75% Confidence Intervals
Public Sub ConfidenceIntervals(topInputRow As Integer, bottomInputRow As Integer, outputRow As Integer)
Dim avg As Double
Dim sd As Double
Dim n As Double
Dim LL95 As Double
Dim UL95 As Double
Dim LL85 As Double
Dim UL85 As Double
Dim LL75 As Double
Dim UL75 As Double
Dim intervalRange As Range
Dim rangeString As String
n = CDbl(bottomInputRow - topInputRow)
rangeString = "C" & CStr(topInputRow) & ":C" & CStr(bottomInputRow)
Set intervalRange = Worksheets("Samples").Range(rangeString)
avg = WorksheetFunction.Average(intervalRange)
sd = WorksheetFunction.StDev_S(intervalRange)
' 95% Confidence Intervals
LL95 = Exp(avg - sd * 2.2622 / Sqr(n))
UL95 = Exp(avg + sd * 2.2622 / Sqr(n))
' 85% Confidence Intervals
LL85 = Exp(avg - sd * 1.5737 / Sqr(n))
UL85 = Exp(avg + sd * 1.5737 / Sqr(n))
' 75% Confidence Intervals
LL75 = Exp(avg - sd * 1.2297 / Sqr(n))
UL75 = Exp(avg + sd * 1.2297 / Sqr(n))
' Write the intervals to the output row.
Sheets("Samples").Select
Cells(outputRow, 7).Value = LL95
Cells(outputRow, 8).Value = UL95
Cells(outputRow, 9).Value = LL85
Cells(outputRow, 10).Value = UL85
Cells(outputRow, 11).Value = LL75
Cells(outputRow, 12).Value = UL75
End Sub
- Я попытался следующий код для назначения значений. Тем не менее, это приводит к тому же поведению. VBA бомбы без сообщений на
Rng.Value = LL95
,
Dim Rng As Range
Set Rng = Sheets("Samples").Cells(outputRow, 7)
Rng.Value = LL95
Set Rng = Sheets("Samples").Cells(outputRow, 8)
Rng.Value = UL95
Set Rng = Sheets("Samples").Cells(outputRow, 9)
Rng.Value = LL85
Set Rng = Sheets("Samples").Cells(outputRow, 10)
Rng.Value = UL85
Set Rng = Sheets("Samples").Cells(outputRow, 11)
Rng.Value = LL75
Set Rng = Sheets("Samples").Cells(outputRow, 12)
Rng.Value = UL75
Я дополнительно попробовал:
Инструменты настройки | Варианты | Генерал | Перерыв на все ошибки. Никакой дополнительной информации или сообщений об ошибках не отображается.
Добавление сообщения об ошибке Перейти к: (для получения дополнительной информации).
Что я пропускаю?
1 ответ
Я передал книгу по Excel моему другу. Он открыл книгу и запустил ее без каких-либо проблем. VBA не будет работать на трех моих рабочих станциях. VBA без проблем работал на двух своих рабочих станциях. Одно из различий между моими рабочими станциями и его рабочими станциями заключается в том, что я вошел в свою учетную запись Office 365 в Excel 2016 и 2019.
В качестве теста (я не ожидал, что это что-то изменит) я вышел из Office 365 в Excel. После выхода я запустил макрос. VBA выполнялся без молчаливых сбоев и заполнял камеры.
Решение, кажется, заключается в следующем:
- Выйдите из своей учетной записи Office 365 в Excel.
- Запустите макрос. Клетки назначены просто отлично.
Помимо потенциальной проблемы, возникающей при внутреннем поднятии события ячейки, я не уверен, почему это сработало.
Мне было бы интересно услышать более твердые и более обоснованные аргументы.