2014-04-07 2 views
0

Фактически, то, что я делаю сейчас, это реализовать синхронизацию Excel и Sharepoint, а это значит, что Excel может обновиться с обновлением Sharepoint , и то же самое для обратного случая.Как сравнить формат текста между Excel и Access (например, цвет, полужирный и т. Д.)

Как известно, MS 2003 не имеет проблем с этим, но MS 2010 может просто реализовать выделение из Sharepoint -> Excel, но не наоборот.

Так что я хочу добавить Access, потому что существует Access < -> Sharepoint, и поэтому, если я могу реализовать la fonction Excel -> Access, это решит мою проблему.

Я закончил для этого несколько частей макросов, и теперь я понял фундаментальную синхронизацию. Однако есть некоторые трудности при работе с форматом текста. В Sharepoint и Access, чтобы выразить цвет, вот так: <div><font color = "#ff0000">TEXT</font></div>, однако в excel я понятия не имею о выражении строки.

Итак, как это сделать? Все предложения или ответы будут оценены.

ответ

1

Это очень широкий вопрос и охватывает множество возможностей, и это не полный ответ, но для сравнения HTML с форматированием VBA вам необходимо индивидуально разбить каждый вариант форматирования и преобразовать его из HTML в VBA и определить свойства, применяемые к тексту, так же, как вы указали выше. Затем вам понадобятся отдельные функции VBA, чтобы указать, что вы хотите сравнить с текстом.


Это, как говорится, это всего лишь пример того, как это может быть достигнуто для сравнения цвета шрифта.

Дано:

'example html: <div><font color = "#ff0000">TEXT</font></div> 
Dim HTML_text : HTML_text = "<div><font color = '#ff0000'>TEXT</font></div>" 
Dim font_color : fontcolor = Mid(HTML_text, instr(HTML_text, "#"), 7) 

вернуться бы "# ff0000" в качестве переменной font_color Затем вам нужно будет функция первенствовать для преобразования Hex (# FF0000) в RGB (из ->Here):

Public Function HEXCOL2RGB(ByVal HexColor As String) As String 
Dim Red As String 
Dim Green As String 
Dim Blue As String 
Color = Replace(HexColor, "#", "") 
Red = Val("&H" & Mid(HexColor, 1, 2)) 
Green = Val("&H" & Mid(HexColor, 3, 2)) 
Blue = Val("&H" & Mid(HexColor, 5, 2)) 
HEXCOL2RGB = Red & "," & Green & "," & Blue 
End Function 

Затем извлечь шрифты RGB в Excel с RGB вы получили от HTML вам потребуется следующая функция (из ->Here):

Function FontColorRGB(Target As Range) As String 
Dim N As Double 
N = Target.Font.Color 
FontColorRGB = Str(N Mod 256) & "," & Str(Int(N/256) Mod 256) & "," & Str(Int(N/256/256) Mod 256) 
End Function 

Тогда, наконец, вытащить все это вместе, вы бы использовать обе функции:

Dim XLFontClr : XLFontClr = FontColorRGB("A1:A2") 
Dim RGB_clr : RGB_clr = HEXCOL2RGB(font_color) 'Returns "Red,Green,Blue" in string form. 

If XLFontClr = RGB_clr Then 
    msgbox "web formatting and excel formatting compared successfully" 
End If 
+0

Спасибо большое. Кроме того, я задаюсь вопросом, существует ли макрос (надстройка), который мог бы подключить один sharepoint fiche со многими параметрами excel, однако каждый из них может просто изменить некоторые части sharepoint fiche (возможно, некоторые колонии)? Это сэкономит много времени для меня: D – Esct

+0

Я нашел способ синхронизации Excel с Sharepoint. На самом деле существует патч, который может помочь нам обновить таблицу (excel) с помощью sharepoint. (http://www.microsoft.com/en-us/download/details.aspx?id=9345) Однако мы должны создать новую зону в sharepoint, что означает, что мы должны опубликовать таблицу с excel на sharepoint, а затем мы может обновить его до sharepoint. – Esct

+0

Итак, чтобы решить эту проблему, я нашел utile класс: ListObject. (http://sharepoint.stackexchange.com/questions/11426/update-list-from-excel-using-vba) Есть небольшой пример, который поможет нам понять это. Фактически, используя макрос, мы можем выбрать загрузку таблицы из sharepoint в excel, а затем сохранить 2 в синхронизации. PS: Кажется, что эта функция стоит 69 $ на каком-то сайте. Так что наслаждайтесь! : D – Esct

Смежные вопросы