2017-05-08 1 views
0

Ich bin neu in VBA, ich möchte (1) kopieren Sie eine Vorlage und (2) legte es direkt vor einem zugewiesenen Blatt sowie (3) ändert seine Farbe.VBA - Kopieren Sie ein Template-Arbeitsblatt und benennen Sie es mit dem von Ihnen eingegebenen Text um und ändern Sie die Registerkarte Farbe

(1) und (2) ist schon in Ordnung, aber ich habe ein Problem bei der Änderung der Farbe (was ist die letzten 3 Zeile des Codes), darf ich Ihre Hilfe suchen, um einen Blick ..? Vielen Dank im Voraus für Ihre Hilfe, es ist sehr geschätzt!

Sub Add_ITS()

Dim wb As Workbook: Set wb = ThisWorkbook 
Dim wt As Worksheet: Set wt = wb.Sheets("Data Input-ITS template") 
Dim ws As Worksheet: Set ws = wb.Sheets("ITSEnd") 
Dim newws As Worksheet, sh As Worksheet, newname 
Dim query As Long, xst As Boolean, info As String 

xst = False 
newname = Application.InputBox("Please Enter the name of the Worksheet") 
If newname = "False" Then Exit Sub 
For Each sh In wb.Sheets 
    If sh.Name = newname Then 
     xst = True: Exit For 
    End If 
Next 
If Len(newname) = 0 Or xst = True Then 
    info = "Sheet name is invalid. Please retry." 
    GoTo retry 
End If 
wt.Copy before:=ws: Set newws = ActiveSheet: newws.Name = newname 

With wb.newws.Tab 
.Color = 6299648 
.TintAndShade = 0 

End With 
End Sub 
+0

Mögliche Duplikat [? Ändern Farbe von Registerkarten in Excel mit VBA] (http://stackoverflow.com/questions/12464457/changing-color-of-tabs-in-excel-using -vba) –

Antwort

0

Sie brauchen nicht die Workbook angeben, wie Sie dies bereits erklärt, wenn Sie die Objektvariable von newws gesetzt (es ist die ActiveWorkbook wie Sie newws als ActiveSheet gesetzt). Versuchen wb Entfernung:

With newws.Tab 
    .Color = 6299648 
    .TintAndShade = 0 
End With 
+1

Es funktioniert !!!!! ich danke dir sehr! – Steph

0

Wenn Sie .Color Eigenschaft verwenden möchten, dann sollten Sie setzen etw wie vbRed, vbBlue und so weiter oder RGB-Werte (siehe unten).

Wenn Sie Werte im numerischen Format verwenden möchten, versuchen Sie die Eigenschaft .ColorIndex (Werte zwischen 0-56) oder RGB (ganze Zahl 0-255 [rot], ganze Zahl 0-255 [grün], ganze Zahl 0-255 [blau])

zum Beispiel:

.ColorIndex=23 
.Color = RGB(111, 233, 233) 
+0

Oh ja, du hast Recht, es ist viel einfacher, die spezifische Farbe zu finden, wenn ich dieses Format verwende, danke !! – Steph

Verwandte Themen