我正在编写宏,但是因为我是第一次在vb中工作,所以遇到了问题。

我的代码:

Cells (1, 1).Select
Dim tempvar As Integer
tempvar = Val(Selection.Value) // error
Selection.Value = tempvar + 1

我的代码应该是:

Cells(1,1).Value+=1

我收到错误“类型不匹配”。 我该怎么做?

编辑 :行1,单元格1被合并。 它由4列组成,所以它是第一行的第1行,单元1,2,3,4。 如果该单元格未合并,则没有问题。

#1楼 票数:1 已采纳

这样吧:

Cells(1,1).Value = Cells(1,1).Value + 1

不需要选择单元格和范围以在VBA中使用它们(并且速度要慢得多),您可以直接引用它们。 我实际上并不肯定,如果Cells(1,1)的值是“ hello”或没有数字,那么上面的方法会起作用,但是如果有效,它将起作用。 如果要测试单元格中的值以确保确定,可以使用IsNumeric()。

让我知道是否有帮助!

  ask by Ivan Prodanov translate from so

未解决问题?本站智能推荐:

1回复

如何使用VBA和匹配功能更新Excel表中的单元格值?

不是这里的VBA专业人士,而是尽我所能... 目标是创建一个宏,该宏基于Application.Match函数中的表行变量来更新表中的单元格值,我也为此而苦苦挣扎。 这是到目前为止,我迷路的地方(也注释了代码)。 我似乎无法获得match函数来将TargetRw变量设置为表中的
2回复

使用VBA脚本将2个时间变量分配给2个单元格中的时间值会引发类型不匹配错误13

我试图将系统时间与相邻列中存储的开始时间和结束时间进行比较。 在我更改了一些代码之前,以下代码可以正常工作一段时间(但由于无法正常工作而恢复为旧代码)。 恢复为旧代码后,比较无法正常进行,并抛出“类型不匹配”错误“ 13”。 另外,由于未获得正确的输出,For循环后的“ z”值变为0。
1回复

使用VBA在Excel中镜像单元格值

我正在尝试使用下面的代码确定某些单元格的值,但它在一行(Worksheets(wsName).Range)上出现错误(对象'Worksheet'的方法'Range'失败)。 我想这是因为我要引用具有相同工作表的数据,但是我找不到要放置的内容而不是工作表。 如果单元格D5中的值更改,它也不会更
1回复

使用VBA在Excel中更改单元格值

我想将单元格值从“强制字段”更改为“值已更改”,但是我直接更改,并且一旦运行代码,“强制字段”将再次替换。 我该如何更改?
1回复

使用VBA在Excel中累积单元格值

TL; DR因此,我唯一的问题是我需要积累单元格的值,可能不需要整个解释,但是如果您仔细阅读它,将会更好地了解我的情况。 我到处搜寻,没有发现任何有关此特殊情况的信息。 我有这张excel工作表http://i.imgur.com/kDNvwL3.png ,其中写出了第一列/行索引。
1回复

如何使用VBA在Excel中的错误单元格中获取基础值

我有这个问题可以完全通过VBA解决,不允许手动干预。 在excel中,如果放置以减号开头的非数字字符串,例如“ -SomeData”,则单元格将显示为“ #NAME?”。 但是,如果选择此单元格,则在编辑栏中它将显示“ = -SomeData”。 现在,我需要提取“ -SomeDa
1回复

使用VBA在excel公式中增加包含单元格引用的变量

我正在构建一个宏,以允许我在电子表格中跨或向下复制公式,其中不同的单元格引用向不同方向移动(例如,第一个单元格引用是静态的(好像用 $ 固定),第二个单元格引用每列向右移动一个(例如 Excel 标准),第三个每列向下移动,第四个向右移动 3,等等)。 这些是非常大、非常复杂的公式,因此这应该可以节
1回复

类型不匹配VBA检查单元格值

我试图理解为什么我收到类型不匹配错误: 这是我所拥有的功能,基本上是从工作表复制到另一个工作表,然后删除复制的单元格的第一个字符: 我有几张纸可能需要复印。 关键是我在行上遇到类型不匹配错误: If Left(c.Value, 1) = "_" Then ,如果我从其他工作表开始