VBA代码不会在粘贴/插入的单元格上运行

时间:2014-05-30 09:36:13

标签: excel vba

我编写了一个小VBA代码,我选择一个单元格后单击工作表上的按钮运行该代码。我测试了代码将一些测试值输入到随机单元格中,它似乎工作正常。但是当我想在我的"真实"数据(我从另一个工作表粘贴到启用宏的工作表中的数据),没有任何反应。我想知道是不是因为我没有字面意思"输入"数据,但必须有一种方法来让代码在所有单元格上运行!但是,我无法在网上找到任何有用的答案。

有人可以帮助理解为什么在选择粘贴的单元格时我的代码不会被触发吗?

非常感谢!

这是我的代码:

Sub SelectCaseTest()

Dim feldname As String
Dim metadata As String
Dim itemid As String

feldname = ActiveCell.Value
metadata = ActiveCell(1, 2).Value
itemid = ActiveCell(1, 3).Value

Select Case feldname

    Case "ACTOR"
        ActiveCell(1, 1).Value = "dc:contributor"
        ActiveCell(1, 0).Value = 6
    Case "CONTENT_TYPE"
        ActiveCell(1, 4) = "(8,'dc:type','" + metadata + "',48," + itemid + ",NULL,1),"

End Select

End Sub

1 个答案:

答案 0 :(得分:0)

您的代码看起来没有错误,因此我假设您的SELECT CASE未找到与单元格内容匹配的内容。

要进行调试,请在Select Case处设置一个断点,然后手动检查feldname是否符合您的任何情况。或者尝试:

MsgBox ("|" + feldname + "|")

或打印到立即窗口(查看>立即窗口):

Debug.Print ("|" + feldname + "|")

注意尾随空格,以及大写字母和小写字母。

根据您粘贴到单元格中的数据类型,您可以尝试将.Value替换为.Text