Cell.Value не работает

MsgBox не может показать значение для TestStr1, но последний код MsgBox Sheets("Sheet2").Cells(2, 11).Value . Зачем?

Возвращаемое значение должно быть 1.

 TestStr1 = Sheets("Sheet1").Cells(2, 11).Value MsgBox (TesStr1) MsgBox Sheets("Sheet2").Cells(2, 11).Value 

Полный код

 Sub FilterTo1Criteria() With Sheets(3) lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With Dim i As Integer Dim j As Integer Dim TestComp As Integer Dim TestStr2 As String Dim TestStr1 As Double TestStr2 = "Suitable" TestStr1 = Sheets("Sheet1").Cells(2, 11).Value MsgBox (TesStr1) MsgBox Sheets("Sheet2").Cells(2, 11).Value For i = 1 To lastRow 'TestComp = StrComp(TestStr1, TestStr2, CompareMethod.Text) If TestComp = 0 Then For j = 1 To 16 Sheets(5).Cells(i, j) = Sheets(3).Cells(i, j) Next j End If Next i End Sub 

Вы объявили TestStr1 но ваш MsgBox хочет отобразить TesStr1 . Исправьте орфографию, и она будет работать.

Добавить Option Explicit вверху каждого кодового листа. У меня это есть в моей книге, и это показало мне ошибку при первой попытке. Подумайте, сколько времени вы могли бы спасти. Помните: Option Explicit . Это означает, что каждая переменная, используемая в листе, должна быть объявлена, и она предназначена для улавливания таких типов, как эта.

Еще одна задача – объявить имена переменных с помощью кепок и маленьких, но набирать их, используя только строчные символы. VBA исправит случай, когда вы закончите печатать каждую строку кода. Если это не так, была опечатка.

Эти две строки кода ссылаются на два разных листа.

Лист 1 :

 TestStr1 = Sheets("Sheet1").Cells(2, 11).Value MsgBox (TesStr1) 

Лист 2

 MsgBox Sheets("Sheet2").Cells(2, 11).Value 

Я предполагаю, что второй работает, но первый не работает, потому что, вероятно, нет значения, присвоенного .Cells (2,11) в Листе 1, но, вероятно, значение, присвоенное той же ячейке в Листе 2 .

ваш msgbox он никогда не покажет вам TestStr1, потому что вы определяете его как двойное, меняете его на строку, и он будет работать

Давайте будем гением компьютера.