小编jma*_*maz的帖子

通过组合2列来形成唯一键的VLOOKUP

对于下表,

excel表

我想在col C中查找值.由于col A和col B中的值不是唯一的,因此VLOOKUP失败.例如,VLOOKUP(1,表,3)返回5而从不返回1.

但是,列A和B 的组合是唯一的.例如,1blah = 5,而1foo = 1.

如何使用cols A和B的组合作为唯一键来返回col C中的相应值?

我不确定是否应该使用工作表函数或自定义VBA函数来实现.我尝试使用CONCATENATE生成唯一键,但这不起作用,因为这会导致数字和字符串的组合.

excel vba excel-vba

7
推荐指数
1
解决办法
2万
查看次数

从列号获取列名?

我在一张纸上有几个命名的列。我想将列号发送到将返回列名的函数。

例如,如果第 1 列名为“apple”,我想将第 1 列传递给返回列名称“apple”的函数。我的尝试:

Function getColName(colNumber As Integer) As String
'return column name when passed column number

    getColName = Cells(1, colNumber).Column.Name

End Function
Run Code Online (Sandbox Code Playgroud)

我怎样才能让这个代码工作?

excel vba

5
推荐指数
1
解决办法
4万
查看次数

如果范围中的单元格包含值,则在相邻单元格中插入注释

我希望标题澄清目标.我的所有尝试都失败了,例如:

Private Sub Worksheet_Change(ByVal Target As Range)

    With Range("A1:A10") = "blah"
        Range("A1:A10").Offset(0, 1).AddComment "fee"
        Range("A1:A10").Offset(0, 2).AddComment "fi"
        Range("A1:A10").Offset(0, 3).AddComment "fo"
    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

我也试过这种方法:

Private Sub Worksheet_Change(ByVal Target As Range)

    For Each cell In Range("A1:A10")
        If cell.Value = "blah" Then
            cell.Value.Offset(0, 1).AddComment "fee"
            cell.Value.Offset(0, 2).AddComment "fi"
            cell.Value.Offset(0, 3).AddComment "fo"
        End If
    Next

End Sub
Run Code Online (Sandbox Code Playgroud)

还有这个:

Private Sub Worksheet_Change(ByVal Target As Range)

    With Range(Target.Offset(0, 1).Address).AddComment
        Range(Target).Offset(0, 1).Comment.Visible = False
        Range(Target).Offset(0, 1).Comment.Text Text:="fee"            
    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

请注意,该代码旨在成为插入特定工作表中的事件处理程序.我明显误解了范围方面的VBA语法.任何这些潜艇工作的任何帮助将是非常感谢.

跟进:Tim建议使用Worksheet_Calculate就像一个魅力.我能够通过蒂姆代码的最终变化来实现我的目标:

Private Sub …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

4
推荐指数
1
解决办法
4万
查看次数

标签 统计

excel ×3

vba ×3

excel-vba ×2