问题
我有一个Excel工作表,其中包含一列文本(即数据),以及关于哪些文本值应该用什么字体和字体大小格式化的一些规则。
特定示例
单元格A1:“文本”
细胞A2 .( A):文本字符串(从几个单词到几个句子)可选地用适用的字体和字体大小格式化
单元格B1:“文本类型”
细胞B2 .单字串,如“标题”、“要求”、“注意事项”。
铭记的规则:
如果B中的字符串是“标题”,则将字符串设置为“A”字体大小为18
如果B中号中的字符串是"requirement",则将字符串设置为Col.A字体
如果B中校中的字符串是“注意”,则使字符串以A中号为“斜体”
约束
Excel作为一个电子表格,都是关于函数式编程(公式)和并行处理(重新计算)。是的,我可以编写过程VBA,但对我来说,它违背了电子表格的精神(尽管过程编程非常流行,Excel和前辈已经提供了很长时间)。
问题
除了特殊用途的VBA程序设计之外,还有其他的想法吗?
似乎不能解决问题
Excel条件格式不能解决问题,因为它明确不允许设置这些特定的单元格属性。
Excel UDF(用户定义函数)不解决问题,因为它们不影响其他单元格。如预期的那样履行职能。即使我想要创建一个函数来复制未格式化的文本,但是使用基于值的样式或大小,UDF也不会影响“环境”--只能返回数据。
我发现here甚至不能将VBA代码作为文本放在Excel工作表单元格中,然后将文本评估为VBA --为字体样式和大小的VBA语句制作一个简单的通用VBA过程处理引擎,然后将其放入工作表中的单元格中。
(如果有任何负面信息是不正确的,而且其中之一将有效,请纠正我。)
VBA 专用的、过程化的编程示例--什么是有效的,但要尽量避免
Public Sub IterateThroughRangeSetFontStyleSize()
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Set wb = Application.ActiveWorkbook
Set ws = wb.Worksheets("myWorkSheet")
Set rng = ws.Range("b2", "b4")
For Each cell In rng.Cells
If LCase(cell.Text) = "bold" Then cell.Offset(0, -1).Font.Bold = True
If LCase(cell.Text) = "italic" Then cell.Offset(0, -1).Font.Italic = True
If LCase(cell.Text) = "large" Then cell.Offset(0, -1).Font.Size = 18
Next cell
End Sub有些想法对我来说太难了,但也许有人会说它们不是
什么是需要
一些跳出盒子的人,保持简单的想法!
发布于 2012-12-28 22:58:01
可以单独保存数据和格式化信息:
Sheet 1:数据;
Sheet 2:描述表1上相应单元格的单元格格式的函数(导致bgcolor="#ff00ff“、字体size="3”等);
Sheet 3:数据和格式合并,提供XSL。
唯一需要的VBA是为第2页编写一个UDF,为第3页编写另一个UDF。
发布于 2012-12-27 22:29:19
我不确定这个问题是否是一个层次--你不想写VBA代码,因为“它违背了Excel的精神”?VBA是在Excel5.0中引入的,在此之前有一个过程宏语言。自动化一直是Excel流行的一个组成部分(也是Lotus1-2-3在它之前崛起的主要原因)。
粗体和斜体可以通过条件格式来操作。
对于字体大小,是的,您需要编写一些代码。也许是一些样本数据或数据类型的指示(文本、整数、实数、.)会提出一些建议。
https://stackoverflow.com/questions/14061416
复制相似问题