【问题标题】:excel VBA Range or cells()?excel VBA范围或单元格()?
【发布时间】:2015-11-26 06:06:57
【问题描述】:

所以,我正在尝试编写一个用户友好的宏以便于记录销售。
我已经完成了所有的输入和计算部分,但是当我尝试使用 cell() 函数将结果写入 excel 电子表格时,我只能写入字符串。

Range("A2").Select
ActiveCell.End(xlToRight).Select
lastcolumn = ActiveCell.Column
'MsgBox lastcolumn
If lastcolumn = 16384 Then
lastcolumn = 1
End If
Cells(16, lastcolumn + 1).Select
If lbl_scfe = "" Then
Cells(2, lastcolumn + 1).Value = 0
Else
Cells(2, lastcolumn + 1).Value = lbl_scfe
End If

我还写了一个简短的代码来测试 range 函数是否可以工作......

Private Sub CommandButton1_Click()
val_cfe_1 = Val(TextBox1)
val_cfe_2 = Val(TextBox2)
coffee = val_cfe_1 * 10 + val_cfe_2
Label1 = coffee
Range("a1") = coffee
Range("a2") = Label1
Cells(2, 1) = coffee
Cells(2, 2) = Label1
End Sub

两个代码都有一个用户表单,range 函数以双精度数据类型输出,以字符串形式输出单元格(2,2),以及

Cells(2, 1) = coffee

在单元格中没有输出。
那么我应该假设 Cells() 函数只能输入字符串吗?还是我没有正确使用该功能...
如果我不能使用 cells() 函数,那么我该如何编写一个 range 函数可以自动转到最后一列并转到单个行? 谢谢

【问题讨论】:

  • 使用Cells(2, 1) = coffee 应该没问题。很多疑问/问题: 1. 你好吗Dim'd coffeeval_cfe_1val_cfe_2(请向我们展示代码)。 2. 你在A1 的单元格中得到了什么? 3. 您是否已通过调试器查看您为coffeeval_cfe_1val_cfe_2 获得了什么值?

标签: excel vba


【解决方案1】:

你应该使用

Cells(2, 1).Value = coffee

而不仅仅是

Cells(2, 1) = coffee

否则,您将单元格与coffee 进行比较,而不是单元格值。

【讨论】:

  • Value是Range对象的默认属性,所以这两行代码是等价的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多