Невозможно получить конкретное значение ячейки из таблицы

Мне нужно перенести код VBA в аддон VB.Net, но я не могу получить конкретное значение ячейки из своей таблицы.

Я могу заменить Range(2,2) на "Test", но table.Range(2, 2).ToString дает System.__ComObject в качестве значения.

Невозможно получить конкретное значение ячейки из таблицы

Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) _
Handles Button1.Click

    Dim table As Excel.ListObject
    table = Globals.wsTables.ListObjects("vehicleDefinations")
    table.Range(2, 2) = "Test"

    Dim file As New System.IO.StreamWriter _
    ("C:\Users\Ryzen2600x\Downloads\Debug.txt", False)
    file.WriteLine(table.Range(2, 2).ToString)
    file.Close()

End Sub

Попробуйте сменить код на file.WriteLine(table.Range(2, 2).Value2)

Samuel Hulla 10.08.2018 10:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
222
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вам не хватает .Value

file.WriteLine(table.Range(2, 2).Value.ToString)

добавление .value дает мне синтаксическую ошибку "Option Strict On запрещает позднее связывание"

Calculator 10.08.2018 09:21
Ответ принят как подходящий

Не используйте .Range для получения значения. Вместо этого попробуйте использовать

table.DataBodyRange.Cells (2, 2)

или

[MyTable] .Cells (2,2)

Он использует свойство ListObject().Range, а не Application.Range, это совершенно правильный способ ссылки на данные таблицы ...

Samuel Hulla 10.08.2018 10:51

Вдобавок к этому table.DataBodyRange.Cells(2,2) (как и другие) приведет к ошибке, так как это выражение ожидает = для присвоения значения!

Samuel Hulla 10.08.2018 10:52

он дает мне System .__ ComObject в качестве вывода,

Calculator 10.08.2018 14:52

file.WriteLine (table.DataBodyRange.Range ("B1"). Value) работает, но я хочу, чтобы он был в формате (1,1), чтобы поместить его в цикл

Calculator 10.08.2018 14:54

Пожалуйста, укажите этот код:

private void ListObject_Range()
{
   Microsoft.Office.Tools.Excel.ListObject list1 = this.Controls.AddListObject(this.Range["A1", "C4"], "list1");
   MessageBox.Show("The list object contains " + list1.Range.Cells.Count.ToString() + " cells.");
}

Более подробную информацию см.

ListObject.Range Свойство

Помогите, это поможет вам.

Спасибо, Юки

Другие вопросы по теме