Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计表表头的显示


  共有3743人关注过本帖树形打印复制链接

主题:[求助]交叉统计表表头的显示

帅哥哟,离线,有人找我吗?
有点甜
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/1 22:34:00 [只看该作者]

以下是引用chnfo在2018/3/1 22:06:00的发言:
 

问题是:
假如左侧标题列是2列,然后交叉表的动态列是15列,每页显示8列的话。
那么,总共会显示3页,前两页每页有8列,第三页只有5列了,那么页面的右边就会空3列的空间出来。用什么方法可以使余下的三列划边框线,但不填充数据?

 

如果是15列的时候,你填充成18列,如果是29列的话,你就填充模板32列,不就行了?


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/1 23:49:00 [只看该作者]

填充完以后,还要把多余的16-18列的标题行文字清掉

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/2 1:08:00 [只看该作者]

以下是引用chnfo在2018/3/1 23:49:00的发言:
填充完以后,还要把多余的16-18列的标题行文字清掉

 

这个不是很简单么?把单元格的值清空即可,如代码 ws.cells(1, 3).value = "" '第一行、第三列的值赋值为空字符串


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/2 22:40:00 [只看该作者]

还有问题请教。
1、动态列的时候,可能会超出一页打印的宽度范围。这时候就要复制标题列到第二页、第三页的左侧。
2、假如标题列有三列,列宽分别是100,150,200,动态列的宽度可以是固定的,比如动态列的度宽为80
那么,如何保证复制的标题列到第二页、第三页、第……页的时候,列宽保证跟第一页相同呢?

 回到顶部
帅哥,在线噢!
有点蓝
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106026 积分:539223 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/2 23:03:00 [只看该作者]

RowHeight
ColumnWidth

这两个属性用于设置单元格大小,RowHeight用于设置行高,ColumnWidth用于设置列宽。例如:

Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("D:\Report.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Range("A1:C1")   '可指定任意单元格或单元格区域
Rg.RowHeight = 40 '行高40磅
Rg.ColumnWidth = 20   '列宽20磅
App.Visible = True


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/2 23:16:00 [只看该作者]

假设标题列是B1:D7。
VBA如何让它复制到某一个区域去,然后让这个区域各列的列宽与B1:D7的列宽分别相同?


搞定。
[此贴子已经被作者于2018/3/3 0:05:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/3 14:13:00 [只看该作者]

继续。
用了模板以后,可能会因为列宽的偏差累计,复制的标题列会出现到下一页的第2列中,甚至第3页中。

所以,应当在复制的标题列的前一列强制换页。
强制分页能否在模板中设置?

Dim Book As New XLS.Book("c:\reports\test.xls") '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim
Style As XLS.Style = Book.NewStyle() '定义新样式
Style.ForeColor = Color.Red
'设置样式的字体颜色
Sheet.Cols(
0).Width = 120 '设置第1列的宽度
Sheet.Cols(
0).Style = Style '设置第1列的样式
Sheet.Cols(
4).PageBreak = True '在第5列处强制分页
Book.Save(
"c:\reports\test.xls")
Dim
Proc As New Process
Proc.File =
"c:\reports\test.xls"
Proc.Start()



试了一下,用    ws.cells(1,N ).PageBreak = True也可以哟。
[此贴子已经被作者于2018/3/3 14:17:58编辑过]

 回到顶部
总数 17 上一页 1 2