Mam kilka tabel w dokumencie, które wyglądają mniej więcej tak:Program Word VBA: Makro do zmiany zaznaczonych komórek i utworzenia tabeli podsumowań tabel?
| Thing | Title |
|-----------|:---------:|
| Info | A, B, C. |
| Score | Foo |
| More Info | Long Text |
| Proof | Blah |
Figure 1
<Screenshot of Proof>
chciałbym, aby wyglądał jak ten (numer w lewym górnym rogu komórki):
| Thing #1 | Title |
|-----------|:-----------------:|
| Info | A, B, C. |
| Score | Foo |
| More Info | Long Text |
| Proof | Blah <Screenshot> |
Ale w dokumencie jest wiele tabel i chciałbym tylko użyć tych "w ramach selekcji".
W skrócie: Muszę wziąć wszystkie tabele w ramach selekcji i numerować je kolejno. Chciałbym również, aby stół z tych tabel, które wygląda następująco:
| Number | Title | Score | Number of CSV's in Info |
|--------|:-----:|-------|-------------------------|
| 1 | Thing | Foo | 3 |
| ... | ... | ... | ... |
| ... | ... | ... | ... |
| ... | ... | ... | ... |
Oto co mam do tej pory:
numeracja tabelach:
Sub NumberTablesSelection()
Dim t As Integer
Dim myRange as Range
Set myRange = Selection.Range
With myRange
For t = 1 To .Tables.Count
Set myCell = .Tables(t).Cell(1,1).Range
myCell.Text = "Thing #" + t
Next t
End With
End Sub
Spis tabel (z informacją):
Sub TableOfThings()
Dim t As Integer
Dim myRange as Range
Set myRange = Selection.Range
myTable = Tables.Add(Range:=tableLocation, NumRows:=1, NumColumns:=4)
myTable.Cell(1,1).Range.Text = "Number"
myTable.Cell(1,2).Range.Text = "Title"
myTable.Cell(1,3).Range.Text = "Score"
myTable.Cell(1,4).Range.Text = "Instances"
With myRange
For t = 1 To .Tables.Count
Set Title = .Tables(t).Cell(1,2).Range
Set Instances = .Tables(t).Cell(2,2).Range
Set Score = .Tables(t).Cell(3,2).Range
Set NewRow = myTable.Rows.Add
NewRow.Cells(1).Range.Text = t
NewRow.Cells(2).Range.Text = Title
NewRow.Cells(3).Range.Text = Score
NewRow.Cells(4).Range.Text = Instances
End With
End Sub
Ale nie działają tak, jak chcę, i Wydaje mi się, że nie mogę ich zmusić do pracy.
Czy ktoś może zapewnić mi rozwiązanie?
Proszę dać mi znać, jeśli potrzebujesz dodatkowych informacji lub szczegółów, starałem się dać minimum wykonalny przykład, a następnie kod mam obecnie w najprostszej formie. – NictraSavios
Która część nie działa? –
W języku VBA ciąg znaków plus liczba, na przykład 'myCell.Text =" Thing # "+ t', spróbuje przekształcić ciąg znaków w liczbę, a następnie liczbę i numer. Dlatego '' Thing # "+ t' spowoduje błąd" typu mismatch ". Zamiast tego wykonaj: 'myCell.Text =" Thing # "& t' (tj. Użyj znaku ampersand). – rskar