Chcę podzielić komórkę z danymi na inne komórki na podstawie danych w oryginalnej komórce. Dane z oryginalnej komórki wyglądają tak (cała zawartość w jednej komórce):
Field95-4,Field97-4,Field98-0,Field100-2,Field103-0,Field105-3,Field107-4,Field109-4,Field110-2,Field111-0,Field112-0,Field113-192,Field114-87,Field115-0,Field116-0,Field117-60
Należy go podzielić za pomocą „,” jako separatora. Dowiedziałem się, że mogę to zrobić za pomocą skryptu:
Private Sub CommandButton1_Click()
Dim X As Variant
X = Split(Range("A1").Value, ",")
Range("A1").Resize(UBound(X) - LBound(X) + 1).Value = Application.Transpose(X)
End Sub
Wynik jest następujący:
Field95-4
Field97-4
Field98-0
Field100-2
Field103-0
Field105-3
Field107-4
Field109-4
Field110-2
Field111-0
Field112-0
Field113-192
Field114-87
Field115-0
Field116-0
Field117-60
Każda wartość jest pojedynczym tokenem zawierającym dwie części podzielone łącznikiem; oryginalna zawartość komórki i jej wartość zastępcza. Skrypt powinien szukać komórki zawierającej pierwszą część tokena, część „numer pola”.
Na przykład istnieje komórka zawierająca tekst „Field95” i komórka z tekstem „Field97” itp. Następnie chcę zastąpić pierwszą część tokena drugą częścią. Tak więc dla „Field95-4” należy znaleźć komórkę z zawartością „Field95” i zastąpić ją tekstem „4”. Komórkę o treści „Field97” należy zastąpić „4”. itp.
To jest plik programu Excel, który przesłałem, abyś mógł zobaczyć, o co chodzi w moim pytaniu. Zawiera dane. połączyć
Wiem, że dużo o to pytam, ale dużo próbowaliśmy i nie mogę zmusić go do działania.
Nie mogę się doczekać twoich odpowiedzi. Z góry dziękuję!
Odpowiedzi:
Zakładając, że Twoje wartości są w jednym zakresie, a zakres wyszukiwania i zamiany nie obejmuje tego zakresu , coś takiego może działać (dostosuj zakresy, wypróbuj kopię danych) -
źródło
for each c in range(
wierszu jest napisane „A: A”, czyli zakres, w którym należy zmienić wartości, które się mieszczą. Wrange("B:B").cells.replace
wierszu „B: B” należy zmienić na zakres, którego szukasz.