powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Преобразование кода VBA в C#
8 сообщений из 8, страница 1 из 1
Преобразование кода VBA в C#
    #39141008
fury_fury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настроил импорт в ексель-файл результата запроса с SQL
Запускается в приложении, обновляется книга и сохраняется
Нужно добавить гиперссылку на одно из полей
Дописал с запрос sql текст формулы ексель ГИПЕРССЫЛКА
Синтаксис правильный, но гиперссылка в ячейке появляется только после нажатия Ентер внутри ячейки
Что можно придумать чтобы в результате сразу получать ссылку?

Вот подсказали код макроса на VBA
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub t_84()
    Dim objC As Range
        For Each objC In Range("a2:a23")
            objC.FormulaLocal = "=ГИПЕРССЫЛКА(""" & objC.Value & """)"
        Next
End Sub



Помогите, пожалуйста, трансформировать код на C#, раз уж все равно используется сишка, то не хочу использовать VB
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39141014
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public void t_84()
{
	Range objC = default(Range);
	foreach ( objC in Range("a2:a23")) {
		objC.FormulaLocal = "=ГИПЕРССЫЛКА(\"" + objC.Value + "\")";
	}
}

//=======================================================
//Service provided by Telerik (http://converter.telerik.com/)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39141047
fury_fury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy, Спасибо Вам
И с Наступающим Новым годом! :)
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39141067
fury_fury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не определяется Range

У меня такой вот код
Как "вписать" в него метод добавления гиперссылки в колонку В файла ексель?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
    class Program
    {
        static string attfile = @"C:\Excel_temp\ext\Новички_без_звонков.xlsx";
        static Excel.Application excelApp = new Excel.Application();
        static Excel.Workbook excelBook;
        static int rowcount;
        static string reportingdate;


        static void Main()
        {
            exceling();
            if (rowcount > 1)
            {
                mailing();
            }        
        }

        public void t_84()
        {
            Range objC = default(Range);
            foreach ( objC in Range("a2:a23")) 
            {
                objC.FormulaLocal = "=ГИПЕРССЫЛКА(\"" + objC.Value + "\")";
            }
        }

        public static int LastRowCell()
        {
            int lastrow = excelApp.Sheets[1].Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
            for (int i = lastrow; i >= 1; i--)
            {
                if (excelApp.Cells[i, 2].Value != null)
                {
                    rowcount = i;
                    break;
                }
            }

            return rowcount;
        }

        static void exceling()
        {
            excelApp.Visible = false;
            excelBook = excelApp.Workbooks.Open(attfile);

            foreach (Excel.WorkbookConnection cnn in excelBook.Connections)
            {
                cnn.OLEDBConnection.BackgroundQuery = false;
            }

            excelBook.RefreshAll();
            LastRowCell();
            excelBook.Save();
            excelBook.Close(0);
            excelApp.Quit();

        }
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39142066
fury_fury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39142070
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fury_fury, на что конкретно жалуется? Где вылетает? Текст ошибки?
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39142313
fury_fury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Axeleron,
Есть ексель-файл, который запускает хранимую процедуру на SQL Server, получает массив, в котором в колонке А текст гиперссылки на веб-ресурс
Нужно преобразовать его в кликабельную ссылку

В инете нашел код для метода Hyperlnking(), но ошибка в определении Range:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
class Program
    {
        static string attfile = @"C:\Excel_temp\ext\Новички.xlsx";
        static Excel.Application excelApp = new Excel.Application();
        static Excel.Workbook excelBook;
        static int rowcount;
        static string reportingdate;
 
 
        static void Main()
        {
            exceling();
            if (rowcount > 1)
            {
                mailing();
            }        
        }
 
        public void Hyperlnking()
        {
            Range objC = default(Range);
            foreach ( objC in Range("a2:a23")) 
            {
                objC.FormulaLocal = "=ГИПЕРССЫЛКА("" + objC.Value + "")";
            }
        }
 
        public static int LastRowCell()
        {
            int lastrow = excelApp.Sheets[1].Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
            for (int i = lastrow; i >= 1; i--)
            {
                if (excelApp.Cells[i, 2].Value != null)
                {
                    rowcount = i;
                    break;
                }
            }
 
            return rowcount;
        }
 
        static void exceling()
        {
            excelApp.Visible = false;
            excelBook = excelApp.Workbooks.Open(attfile);
 
            foreach (Excel.WorkbookConnection cnn in excelBook.Connections)
            {
                cnn.OLEDBConnection.BackgroundQuery = false;
            }
 
            excelBook.RefreshAll();
            LastRowCell();
            Hyperlnking();
            excelBook.Save();
            excelBook.Close(0);
            excelApp.Quit();
 
        }



Но даже в скачанной части кода в гиперссылку преобразовывается только указанный диапазон. Может можно преобразовать все заполненные ячейки колонки B? Например в ячейках в которых есть хоть один символ
...
Рейтинг: 0 / 0
Преобразование кода VBA в C#
    #39142322
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fury_fury,
Так судя по ошибке компиляции не хватает этого неймспейса Microsoft.Office.Tools.Excel
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Преобразование кода VBA в C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]