Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Преобразование кода VBA в C# / 8 сообщений из 8, страница 1 из 1
31.12.2015, 10:46
    #39141008
fury_fury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
Настроил импорт в ексель-файл результата запроса с 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
31.12.2015, 11:09
    #39141014
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
Код: 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
31.12.2015, 13:07
    #39141047
fury_fury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
Antonariy, Спасибо Вам
И с Наступающим Новым годом! :)
...
Рейтинг: 0 / 0
31.12.2015, 13:54
    #39141067
fury_fury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
Не определяется 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
04.01.2016, 18:15
    #39142066
fury_fury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
Помогите, пожалуйста
...
Рейтинг: 0 / 0
04.01.2016, 18:18
    #39142070
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
fury_fury, на что конкретно жалуется? Где вылетает? Текст ошибки?
...
Рейтинг: 0 / 0
05.01.2016, 12:08
    #39142313
fury_fury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
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
05.01.2016, 12:48
    #39142322
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование кода VBA в C#
fury_fury,
Так судя по ошибке компиляции не хватает этого неймспейса Microsoft.Office.Tools.Excel
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Преобразование кода VBA в C# / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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