事实上,我现在正在做的是实现Excel和Sharepoint的同步,这意味着Excel可以通过更新Sharepoint进行更新,对于相反情况也是如此。
众所周知,MS 2003对此没有任何问题,但MS 2010只能实现Sharepoint的功能 - > Excel,但不是相反的方式。
所以我想添加Access因为存在Access< - > Sharepoint,等等,如果我能实现Excel功能 - >访问,这将解决我的问题。
我为此完成了一些宏的部分,现在我已经意识到了同步的基本功能。但是,在处理文本格式方面存在一些困难。在Sharepoint和Access中,表达颜色就是这样
<div><font color = "#ff0000">TEXT</font></div>,
但是在excel中我不知道字符串的表达式。
那怎么办?所有的建议或答案将不胜感激。
答案 0 :(得分: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)
将返回&#34;#ff0000&#34;作为变量font_color
然后你需要excel函数将十六进制(#FF0000)转换为RGB(取自 - &gt; 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
然后,要将Excel中的字体RGB提取为您从HTML收到的RGB,您需要以下功能(取自 - &gt; 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