0

我创建了一个包含多张工作表的工作簿。在其中一个工作表中,我编写了一个宏,一旦单击 active-x 按钮,它就会在另一个工作表(带有预定义的单元格)中创建下拉值。

现在的问题是,一旦我运行宏,它就会完美执行,但是一旦我删除宏,即使我在删除宏之前保存了文件,下拉值也会消失。

让我知道是否需要更多详细信息。

代码片段 -

Private Sub CommandButton1_Click()
'Define the variables
Dim vRangeDefined, vRowCount, vCounter, vCellValue As String, vDataValue As String
Dim wbk As Workbook

'Define the range where the values are entered
vRangeDefined = ActiveSheet.Range("A:B").Value
vRowCount = ActiveSheet.UsedRange.Rows.Count

For vCounter = 2 To vRowCount
    vCellValue = vRangeDefined(vCounter, 1)
    vDataValue = vRangeDefined(vCounter, 2)

   'Assign the names to cells as per the range
    Sheets(2).Select
    ActiveSheet.Range(vCellValue).Select

    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=vDataValue
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

Next

MsgBox "Process complete..."

End Sub

谢谢!

4

1 回答 1

0

我需要的只是 A1:B2 范围内的四个单元格值,您可以在此处简单地键入。

我很抱歉那篇文章(以上面一行中的文字开头),因为我想将它添加为评论,但在我的手机上做时失败了。因此,我继续在这里...

我做了你所描述的一切,没有任何异常发生,你没有任何问题。我在 Excel 2010 上进行了测试。我的进一步建议是:

  1. 请考虑如果您在删除宏后执行任何其他操作,这在这种情况下似乎并不重要,

  2. 尝试断开您的宏与按钮的连接并将其放入标准模块(例如 Module1)中,然后使用 VBA 编辑器中的 F5 键运行它。

如果您最终找到解决方案,请通知我们。

于 2013-03-15T04:23:04.860 回答