我有一個文件在一堆表,看起來大致是這樣的:單詞VBA:宏來更改所選單元格,並創建表格的彙總表?
| Thing | Title |
|-----------|:---------:|
| Info | A, B, C. |
| Score | Foo |
| More Info | Long Text |
| Proof | Blah |
Figure 1
<Screenshot of Proof>
我想使它看起來像這樣(數量左上角的單元格):
| Thing #1 | Title |
|-----------|:-----------------:|
| Info | A, B, C. |
| Score | Foo |
| More Info | Long Text |
| Proof | Blah <Screenshot> |
但是,文檔中有許多表格,我只想使用「在選擇範圍內」的表格。
簡而言之:我必須將選中的所有表格按順序編號。 我也想使這些表看起來像這樣的一個表:
| Number | Title | Score | Number of CSV's in Info |
|--------|:-----:|-------|-------------------------|
| 1 | Thing | Foo | 3 |
| ... | ... | ... | ... |
| ... | ... | ... | ... |
| ... | ... | ... | ... |
這是我到目前爲止有:
編號表:表的
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
表(與信息):
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
但他們平掉不工作,我希望他們的方式,我似乎無法設法讓他們工作。
有人能給我一個解決方案嗎?
請讓我知道如果您需要任何額外的信息或細節,我試圖給出一個最小可行的例子,然後我現在的代碼以其最簡單的形式。 – NictraSavios
哪部分不工作? –
在VBA中,字符串加上數字,比如'myCell.Text =「Thing#」+ t',會嘗試使字符串變成數字,然後做數字加數字。因此,''Thing#「+ t'會導致'類型不匹配'錯誤。而是:'myCell.Text =「Thing#」&t'(即使用&符號)。 – rskar