Копирование и вставка на лист, чье имя не равно значению в списке? - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь скопировать и вставить информацию в определенные листы.Большинство имен рабочих листов я уже знаю, но может быть добавлен один новый рабочий лист, имя которого я не знаю.

Есть 3 рабочих листа (назовем их WorkSheet1, WorkSheet2 и WorkSheet3).что я не хочу менятьсяЯ хочу скопировать некоторые значения из WorkSheet2 и вставить их во все рабочие листы, кроме 1-3.До сих пор у меня есть оператор IF с рабочими таблицами, имена которых я знаю (WorksheetX, Y и Z).У меня возникли проблемы с последним экземпляром, где я не знаю имя листа.Я думал об использовании Or.Вот что у меня пока так:

Dim ws As Worksheet
Dim og As Worksheet
Set og = Sheets("WorkSheet2")
For Each ws In Worksheets
If ws.Name = "WorkSheetX" Then
    og.Range("A1").Copy
    Sheets("WorkSheetX").Range("L4").PasteSpecial
ElseIf ws.Name = "WorkSheetY" Then
    og.Range("A1").Copy
    Sheets("WorkSheetY").Range("L4").PasteSpecial
ElseIf ws.Name = "WorkSheetZ" Then
    og.Range("A1").Copy
    Sheets("WorkSheetZ").Range("L4").PasteSpecial

'This is where I am having trouble. I won't know the name of the new sheet
'Just that it wont be WorkSheet1,2,3,X,Y, or Z
ElseIf (ws.Name <> "WorkSheet1" Or ws.Name <> "WorkSheet2" 
Or ws.Name  <> "WorkSheet3" Or ws.Name <> "WorkSheetX" Or
ws.Name <> "WorkSheetY" Or ws.Name <> "WorkSheetZ") Then
    og.Range("A1").Copy
    ws.Range("L4").PasteSpecial
End If
Next

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Вот простой код для выполнения вашей задачи.

Dim ws As Worksheet

'Change the sheet names you don't want to perform you copy_paste
Sheets(Array("Sheet1", "Sheet2", "Sheet4", "Sheet_n")).Visible = False

    For Each ws In Application.ThisWorkbook.Worksheets
            If ws.Visible = True Then
                ws.Range("L4").Value = ws.Range("A1").Value
            End If
    Next ws

Sheets(Array("Sheet1", "Sheet2", "Sheet4", "Sheet_n")).Visible = True
0 голосов
/ 24 ноября 2018

Несколько рабочих листов

Option Explicit

Sub AFewWorksheets()

  Dim ws As Worksheet
  Dim og As Worksheet

  Set og = Sheets("WorkSheet2")

  For Each ws In Worksheets

    Select Case ws.Name
      Case "Worksheet1", "Worksheet2", "Worksheet3"
      Case Else
        og.Range("A1").Copy
        ws.Range("L4").PasteSpecial
    End Select

  Next

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...