/ / VBA Handeling komórki Excel zawierającej zarówno tekst, jak i wartość formuły - excel, vba, excel-vba, makra

Ręczne przeciąganie komórki VBA zawierające tekst i wartość formuły - excel, vba, excel-vba, makra

Właśnie zacząłem pracować z VBA dla Excela i mnieWystąpił problem, którego nie mogę znaleźć. Chcę utworzyć makro, które tworzy kopię arkusza i zmienia nazwę kopii na to, co jest określone w komórce B8. Teraz komórka B8 zawiera ciąg znaków i wartość (na podstawie na wzorze) zilustrowanym poniżej.

Zawartość komórki B8

wprowadź opis obrazu tutaj

Jak uzyskać, aby VBA używało nazwy (ciągu i numeru) jako nazwy nowego arkusza?

Sub NewFunction()

Dim counter As Integer

Sheets(1).Copy After:=Sheets(1)

ActiveSheet.name = Sheets(1).Range("B8").CStr

End Sub

Z góry dziękuję!

Odpowiedzi:

1 dla odpowiedzi № 1

Po pierwsze, nie możesz użyć "/" w nazwie arkusza. Może to być błąd, ale Excel zignoruje go.

Po drugie zmieniasz nazwę na niewłaściwym arkuszu. Dodałeś nowy arkusz, a następnie odesłałeś do starego arkusza.

Po trzecie, nie trzeba używać .CStr, ponieważ wartość komórki jest tym, czego potrzebujesz, a ponieważ jest to właściwość domyślna, nie musisz również używać wartości .Value.


0 dla odpowiedzi nr 2

byłeś prawie na miejscu

Sheets(1).Copy After:=Sheets(1)
ActiveSheet.name = Replace(Replace(Replace(Replace(Range("B8"), "", "-"), "/", "-"), "?", "-"), "*", "-")

gdzie

  • po Copy() metoda Worksheet obiekt, nowy arkusz staje się aktywny jeden

  • VBA Replace() metoda chain to upewnić się, że nie używasz niedozwolonych znaków do nowej nazwy arkusza roboczego

pozostaje kwestia możliwych zduplikowanych nazw, które mogą być obsługiwane za pomocą konkretnej funkcji, którą można znaleźć tutaj, jeśli wyszukujesz