如何使用vba在单元格中输入值?

要点

  • value 属性可以双向使用(您可以从单元格读取和写入值)。
  • 您可以使用单元格和范围对象引用单元格来设置单元格值(也可以获取和编辑)。

设置单元格值

要设置单元格值,您需要使用“Value”属性,然后您需要设置您想要设置的值。这里我用了一些例子来帮助你理解这一点。

1. 在单元格中输入一个值

假设您需要在单元格 A1 中输入值“完成”。在这种情况下,代码将如下所示:

 Range("A1").Value = "Done"
设置单元格值

如您所见,首先我设置要添加值的单元格的地址,然后设置 value 属性。最后,我使用双引号中的等号“=”指定值“Done”。

您还可以使用“Cells”属性,就像下面的代码一样。

 Cells(1, 1).Value = "Done"

上面的代码还引用单元格 A1。

除此之外,您还可以使用另一种方法,那就是不使用 value 属性,而是直接将值分配给单元格。

 Cells(1, 1) = "Done"

但建议使用 value 属性在单元格中输入值。

现在假设您要在单元格中输入一个数字。在这种情况下,您不需要使用双引号。您可以编写如下代码。

 Range("A1") = 99

您还可以通过DATENOWVBA 函数)使用 VBA 代码在单元格中输入日期或时间戳。

 Range("A1").Value = Date Range("A2").Value = Now

如果您想在活动单元格中输入一个值,您需要的代码如下:

 ActiveCell.Value = Date

2.使用输入框

如果您希望用户指定要输入到单元格中的值,您可以使用输入框。假设您要在单元格 A1 中输入值,代码将如下所示:

使用输入框换取值
 Range("A1").Value = _ InputBox(Prompt:="Type the value you want enter in A1.")

在上面的代码中,单元格A1的值被分配给输入框返回的值,该输入框返回用户输入的值。

3.来自另一个细胞

您还可以使用另一个单元格的值来设置单元格值。假设您想从单元格 B1 向单元格 A1 添加值,代码为:

 Range("A1") = Range("B1").Value
使用另一个单元格的值设置单元格值

您还可以在不使用 value 属性的情况下引用单元格 B1。

 Range("A1") = Range("B1")

4.全范围设定值

假设您想要在多个单元格或一系列单元格而不是单个单元格中输入值,在这种情况下您需要编写如下代码:

 Range("A1:A10").Value = Date Range("B1, B10").Value = Now
在整个范围内设定值

在第一行代码中,您拥有从单元格 A1 到 A10 的整个范围,在第二行中,有两个单元格 B1 和 B10。

获取单元格值

正如我所说,您可以使用相同的 value 属性来获取单元格的值。

1.获取ActiveCell的值

假设您想获取活动单元格的值,此时您需要使用以下代码。

 ActiveCell.Value = Range("A1")
获取单元格值

在上面的代码中,您使用了活动单元格的 value 属性,然后将该值分配给单元格 A1。

2. 赋值给变量

您还可以从单元格中获取值,然后将其分配给变量

分配给一个变量

现在,在上面的代码中,您有变量“i”,其数据类型为日期。在代码的第二行中,单元格 A1 的值被分配给变量。

3. 在MsgBox中显示

现在假设您要使用消息框显示单元格 A1 的值。在这种情况下,代码如下所示。

 MsgBox Range("A1").Value
显示在消息框中

在上面的代码中,消息框将从单元格 A1 中获取值并将其显示给用户。

msgbox-取值

更改单元格值

您还可以更改单元格值,这里我分享了一些示例,可以帮助您理解这一点。

1. 在现有号码上添加号码

假设如果您想将单元格 A1 中的数字加 1,则可以使用以下代码。

 Range("A1").Value = Range("A1").Value + 1

上面的代码通过获取单元格 A1 本身的值并加一来为单元格 A1 赋值。但您也可以使用VBA IF THEN ELSE编写一个条件,仅当单元格中有数字时才进行更改。

 If IsNumeric(Range("A1").Value) Then Range("A1").Value = Range("A1").Value + 1 End If

2. 删除单元格中的第一个字符

现在,以下代码从单元格值中删除第一个字符,并将其余值分配给单元格。

 Range("A1").Value = Right(Range("A1").Value, Len(Range("A1").Value) - 1)

添加评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注