VBA无效的数字格式是什么意思码?

本文是专栏《Excel必知必会》的第 2 篇教程,如果想了解专栏内容规划,请参阅。温馨提示:如果您已经特别熟悉Excel,大可不必再看这篇文章,或只挑选部分。文中对Excel的说明和操作基于Mac Excel2016和Windows Excel 365

最常用的数据验证方式,常做为下拉栏使用,需要注意的是数据源可以框选,也可以直接输入,若直接输入,列表中各项以","进行分隔

操作:数据---数据验证--数据验证---验证条件【序列】

可直接输入:"安徽,江苏,山东,河南,河北";名称也是单元格引用,配合Indirect函数实现多级菜单。

操作:数据---数据验证--数据验证---验证条件【自定义】

引入数据验证的单元格,输入值必须满足公式的的判定条件,否则提示输入错误,需要注意单元格引用样式!

公式COUNTIF(B:B,B1)=1目的是判断B1的输入在B列是否是唯一值,需要注意的是公式B1使用的是相对引用形式。

首先无效数据的前提是基于数据验证的设置,不满足验证规则的数据会被圈释出来

操作:数据---数据验证--圈释无效数据

这里有一个操作顺序的问题,可以看到先是有了数据,然后再添加了数据验证,验证条件是单元格内容<11,条件之外则为无效值,已经被圈释出来。
还有一点,添加了数据验证的单元格,无效数据虽然没法直接输入,但是可通过函数或者VBA间接输入。

主要针对的数字型单元格,单元格格式默认是常规,通过对格式的设置,单元格会显示不同的格式/效果,但是值本身并没有变化

!需要着重说的是自定义单元格格式

1.数字添加后缀/单位

使用频率最高的应用,自定义后选中General,然后在""内添加单位/其他后缀。

设置了“#”占位符的单元格,只显示有意义的零,小数点后面的数字如果多于“#”的数量,则按“#”的位数四舍五入

设置了“0”占位符的单元格,如果单元格内容长度大于占位符数,则显示实际数字;小于占位符数,则用0从头补足。

当然可以混合使用"#","0"

3. 文本占位符“@”

单个"@"表示引用单元格原始文本,通过自定义格式"文本内容"+"@",实现自动添加文本,同时"@"字符的位置决定添加内容的位置,当然多个"@"可以重复文本。

这里其实需要说明的是,如果单元格设置为文本,此时公式失效,需要将单元格改成常规。

数字前添加”'“,可将数字直接转换成文本型数字

在Excel中数字按照值分为4类:正数,负数,零以及文本型数字,Excel支持同时对这四类数字分别格式化,定义时按照正数,负数,零,文本顺序,同时使用";"进行链接。

如上设置,正数保持,负数保留一位小数,0值补充两位,文本添加"#"号;注意负数格式化前有"-"号,如无则显示100.0;
Tips: 如果想隐藏单元格内容,只需自定义格式为“;;;”
  • 颜色区分,可选颜色:红色,黑色,黄色,绿色,白色,蓝色,青色,洋红

按照单元格数值的分类,以字体颜色区分,按照正数,负数,零,文本数字顺序。

正数设置为红色,负数设置为绿色,0值为蓝色,文本为洋红色

条件格式化只限于使用三个条件, 其中两个条件是明确的, 最后一个"所有的其他"。

注意,文本非有效数值,此例中无法判定。

"h": 代表小时;"m":代表分钟;

如上隐藏了日期部分,只显示了时间,并且精度控制到ms

条件格式是数据可视化的一大杀器,主要分为6类:

操作:开始--条件格式

前5种操作比较简单,着重介绍下如何新建/自定义规则

1. 突出显示大于5的值;2.高于平均值的值;3.数据条;4.双色【白-绿】色阶;5.图标集

这6类条件格式可以叠加使用,结合单元格格式化可以提高可视化效果。

如何自定义/新建条件格式规则

选中目标单元格---条件格式---新建规则---使用公式确定要设置格式的单元格

注意单元格引用样式!!!

此例从单元格J2:J11找出小于50的奇数,目标单元格字体为白色,填充为红色;其中函数AND()代表多逻辑与运算;MOD()取余函数;这里需要特别注意的是单元格使用的是相对引用样式!

同样,自定义规则也可以叠加使用!

绿色为J2:J11单元格小于50的偶数

传送门:链接: 密码:595e

Xmind 建议以2020版打开,体验更佳!

我得到错误无效的过程调用或参数

我已经尝试了一些修复,如replace“和”,清空Tabledestination字段,更改数据透视表版本和许多其他的东西。我不熟练的VBA,所以我不知道还有什么地方把我的手放在哪里debugging器告诉我。

这是debugging器给出错误的地方:

编辑 :试图分裂的function,格雷厄姆build议,得到一个运行时错误'424'所需的对象。 这是我如何做分裂。

编辑2 :将下面的代码更新到最新版本,它现在提供以下错误“运行时错误'1004':数据透视表字段名称无效。要创build数据透视表报表,您必须使用数据作为列表带有标签的列如果您要更改数据透视表字段的名称,则必须为该字段键入一个新的名称。 与CreatePivotTable一致。

首先,非常感谢@Graham能够帮助我解决部分问题。 为了解决这个问题,首先我分割代码的一部分给出错误。

确保当你将前一部分转换成这个时,你知道R5000C10的意思是“Row 5000 Column 10”(我不知道,这给我造成了一些问题)。

然后,我改变了原来代码中“Sheet4”被调用并replace为“Sheet2”的所有实例。 注意这一点,我注意到,如果我从Excel中运行代码,新生成的表被称为“Sheet1”,如果由HPQC运行,它被称为“Sheet2”。 确保你使用debugging器,看看新的表格是如何调用的。

另外要注意,对于“设置pivotRange”和“设置tableRange”,你不能给它的工作表名称本身,将工作表分配给一个variables,然后使用它。

所有这些东西结合起来,代码现在可以工作。 后处理仍然看起来不像我期望的,但我怀疑这是由于ExcelVBA从Excel 2007到Excel2013(数据透视表显示需要的信息,但格式稍有不同)的变化。 我希望这会在同样的情况下帮助别人。

看一下这里的PivotCaches.create的当前文档,你会发现这两个版本的方法签名看起来是这样的:

这几乎肯定会导致您在Excel版本之间移动时遇到的问题,因此删除最后一个参数并将其转换为当前版本的Excel的默认值:

也可以尝试把这个调用分解成多个语句,就像你在这个问题中接受的答案中看到的一样,它会使它更容易阅读,并且帮助你理解错误的地方:

我要回帖

更多关于 vba 字符转数字 的文章

 

随机推荐