1

我正在尝试创建一个按钮,根据我给他的日期和年份进行自动工作安排。它使用字符串中的名称创建一个新工作表 - 年份

Sub Create_Arran_Click()

Dim year As String
Dim sdate As Date
Dim row As Integer

year = Worksheets("Main").Cells(17, 4)
sdate = Worksheets("Main").Cells(18, 4)
Sheets.Add.Name = year

For i = 1 To 56
row = ((i - 1) * 12) + 2
Worksheets(year).Cells(row, 1) = "week " & i
Worksheets(year).Cells(row + 1, 1) = "day"
Worksheets(year).Cells(row, 1).Font.Bold = True
For j = 2 To 15

    (!)Range(Cells(row, j), Cells(row, (j + 1))).Merge 
    Worksheets(year).Cells(row, j) = sdate + (j - 2)
    (!)Range(Cells(row + 1, j), Cells(row + 1, j + 1)).Merge 
    Worksheets(year).Cells(row + 1, j) = Weekday(sdate + (j - 2), vbSunday)

j = j + 2
Next
sdate = sdate + 7
Next'

问题是标有“!”的行 没有在“年”表中进行合并。我尝试了几件事,例如:

          'Worksheets(year).Range(Cells(row, j), Cells(row, (j + 1))).Merge

或 sheet(year).Range(Cells(row, j), Cells(row, (j + 1))).Merge 或 Worksheets(year).activate

但没有什么可以帮助任何人?

4

3 回答 3

1

当您从另一个工作表中引用一个范围时,您需要在调用 Range AND Cells 时说出它的位置

所以与其写

Worksheets(year).Range(Cells(row, j), Cells(row, (j + 1))).Merge

做这个

with Worksheets(year)
.Range(.Cells(row, j), .Cells(row, (j + 1))).Merge
end with

请注意我在调用 Range 和 Cells 时如何引用工作表

于 2013-03-27T17:02:22.187 回答
1

当您也以这种格式引用单元格时,您需要参考工作表

工作表(“年”).范围(工作表(“年”)。单元格(i,j),工作表(“年”).单元格(i,j+3)).merge

索拉吉

于 2017-04-22T05:01:20.700 回答
0

当您这样做时,Range(Cells(row, j), Cells(row, (j + 1))).Merge您正在使用编写代码的工作表,它可能不是“年”工作表。

尝试做Worksheets(Year).Range(Cells(row, j), Cells(row, (j + 1))).Merge

如有必要,请在之前激活:

Worksheets(Year).Activate
Worksheets(Year).Range(Cells(row, j), Cells(row, (j + 1))).Merge
于 2013-03-27T14:59:35.193 回答