【问题标题】:Setting the Value of a cell in VBA (Why wont my code work)在 VBA 中设置单元格的值(为什么我的代码不起作用)
【发布时间】:2026-01-23 05:15:01
【问题描述】:

我正在使用代码

hood.Offset(0, 2).Value = hoodName

hood 被声明为一个范围。组成引擎盖的单元格返回#VALUE 错误,而我尝试设置的单元格没有返回任何内容。为什么?!?!?!?!?我做错了什么?

好的,这里还有一些代码:

Function NhoodCheck(rXY As Range) As String
Dim hoodName As String
Dim hood As Range
Set hood = rXY.Cells(1, 2) 
If OHC(rXY) = True Then
 hoodName = "Ohio City"
End If
Set hood.Offset(0, 2).Value = hoodName
End Function

基本思想是调用函数并传递一个范围 (rXY),然后调用一个布尔函数作为 if 语句的一部分。如果返回为真,那么它将 hoodname 设置为邻域的名称。如果它是假的,它会执行其他检查,所有这些都是为了确定一个地方所在的邻域。然后它返回邻域的第一部分,但 hoodname 是一个更大的区域,并进入调用函数的单元格旁边的单元格中 (因此偏移)。第一部分工作正常。它只是没有设置偏移单元格的值。在这种情况下,我希望某些单元格说“俄亥俄城”。

【问题讨论】:

  • 目前还不清楚什么是“细胞没有返回任何东西”。请提供更多代码和解释。
  • 您能否提供 HoodName 的来源、您对它有什么价值、您的更多代码以及我们可以使用的更好的解释来帮助您?

标签: excel vba


【解决方案1】:

试试这样:

hood.Offset(0, 2).Value = "hoodName"

没有" VBA 认为hoodName 是一个变量。


试试这个代码:

Option Explicit
Sub TestMe()        
    Dim hood As Range        
    Set hood = Range("D4")
    hood.Offset(0, 2).Value = hoodName    
End Sub

它会返回一个错误,因为hoodName 是一个变量并且应该声明一个变量,因为Option Explicit 的存在。如果您删除Option Explicit,代码将起作用,因为VBA 会认为hoodName 是一个变量,它等于""

【讨论】:

    最近更新 更多