【问题标题】:Paste a value from a drop-down list从下拉列表中粘贴一个值
【发布时间】:2023-01-14 08:24:42
【问题描述】:

我正在创建一个在我的 excel 文件中创建一个新工作表的宏,我需要该工作表与从下拉框中选择的位置相同。

当您单击按钮 1 时,会出现一个新工作表,但我不知道如何命名与所选名称相同。到目前为止,这是我的代码:

我需要用从下拉框中选择的卫生当局替换“新名称”。

如您所见,名称已存储,正如我复制的那样。我在想解决方案可能是使用粘贴空间值,但我不知道怎么写。

【问题讨论】:

  • ActiveSheet.Name = Sheets("user").Range("M42").Value
  • ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets("User")).Name = ThisWorkbook.Sheets("User")Range("M42").Value 但是如果已经有同名的工作表,你会得到一个错误。
  • 您知道如何在新表格中仅粘贴所选卫生机构的数据吗?在我的数据中有一列卫生当局,每个人都有一个分配给它的编号,因此取决于该人来自该卫生当局的编号。

标签: excel vba macros dropdown


【解决方案1】:

在添加之前检查是否存在具有新名称的现有工作表以避免后续错误。

Option Explicit

Sub createsheet()

   Dim sName As String, ws As Worksheet
   sName = Sheets("user").Range("M42").Value
   
   ' check if already exists
   On Error Resume Next
   Set ws = Sheets(sName)
   On Error GoTo 0
   
   If ws Is Nothing Then
       ' ok add
       Set ws = Sheets.Add(after:=Sheets(Sheets.Count))
       ws.Name = sName
       MsgBox "Sheet created : " & ws.Name, vbInformation
   Else
       ' exists
       MsgBox "Sheet '" & sName & "' already exists", vbCritical, "Error"
   End If
   
End Sub

【讨论】:

  • 我已经通过将 .value 放入包含名称的单元格来对其进行排序。我应该把它作为一个新的宏吗?
猜你喜欢
  • 1970-01-01
  • 2022-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多