我正在尝试根据我给他的日期和年份创建一个自动工作安排的按钮。 它会创建一个名称在字符串中的新工作表 - 年
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)))。合并 要么 工作表(年).activate
但没有任何帮助 任何人吗?
答案 0 :(得分:1)
当您从另一个工作表引用范围时,您需要说出调用范围和单元格时的位置
所以而不是写作
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
时如何引用工作表答案 1 :(得分:1)
当你以这种格式引用单元格时需要引用工作表
张("年")。范围(张("年")。细胞(i,j),张("年")。细胞(我,j + 3))。合并
Sooraj
答案 2 :(得分: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