如何再VBA里获取当前工作表里数据的行数和列数

如何再VBA里获取当前工作表里数据的行数和列数,第1张

iRows=activesheetusedrangerowscount\x0d\iColumns=activesheetusedrangeColumnscount\x0d\\x0d\'如果表格前面的几行或几列可能是空的,需要获得最下面的行数和最右面的列数:\x0d\with activesheetusedrange\x0d\ iEndRow=rowscount+row-1\x0d\ iEndColumn=Columnscount+column-1\x0d\end with

打开Excel文档,按Alt+F11,打开VBE编辑器,工程区域右键“插入”-“模块”,插入一个新“模块1”。

2

/6

模块代码区域输入如下代码:

Sub 页脚更新()

Dim T As String

T = ActiveSheetRange("A1")Value '此处取当前页面A1的值,可根据需要更改

With ActiveSheetPageSetup

CenterFooter = "&""楷体,加粗""&10" & T & "居中" '将A1的值设置为楷体、加粗、10号、居中页脚显示

LeftFooter = "&""黑体,加粗""&14" & T & "靠左" '将A1的值设置为黑体、加粗、14号、靠左页脚显示

RightFooter = "&""幼圆,加粗""&12" & T & "靠右" '将A1的值设置为幼圆、加粗、14号、靠右页脚显示

End With

End Sub

3

/6

返回Excel文档界面,“开发工具”选项卡下,单击“插入”-“按钮(窗体控件)”,鼠标左键拖拉出一个按钮控件。

4

/6

在按钮控件上右键,单击“指定宏(N)”。

5

/6

选择“页脚更新”宏,单击“确定”完成宏的指定。

6

/6

单击按钮控件。单击“视图”选项卡下的“页面布局”,可以看到页脚已经实际更新。

从你的,可以看出,数据是在WORD文件的表格中的,编个小程序可以解决,思路如下:

1、程序遍历指定文件下的所有DOC类文档,

2、打开找到的第一个文档,遍历文档中的每一个表格,

3、遍历表格中的每一个格子,与关键字进行比较,找出目标,其右侧的单元格中就是你要的字符串

4、程序新建EXCEL表格(这一步可以事先进行)

5、将找到的字符,输出到EXCEL表格中适当位置

6、循环直至文档未

7、循环直至文件夹中所有DOC文档全部处理完成

8----欢迎一起探讨(说明,我用的是C++,调用WORD,与EXCEL用的是ACTIVEX方法)

用VBA *** 作Office剪贴板

这两天对用VBA *** 作Office剪贴板的问题产生了兴趣。VBA帮助文件对此好像并无多少提及,在网上进行过一系列的搜索,基本上是用API来 *** 作的,只因水平所限,看不明白,便试着用别的方法处理。经反复尝试,总算有些眉目,主要是用SendKeys语句处理的,经多次测试(Word2003),似可行。这样的 *** 作可能实用意义不大,只是作为练习,也算有点收获。

以下为相关代码,欢迎测试,并提出修改意见。

Sub test1()

'检查Office剪贴板现有粘贴项目

Dim a As String

With CommandBars("Task Pane")

WordBasiceditofficeclipboard '从任务窗格调出剪贴板

With Controls(1)

a = Caption '提取Office剪贴板控件的题注文本

If a Like "24" Then

MsgBox "Office剪贴板粘贴项目已满24个!"

ElseIf a Like "#" Then

MsgBox "Office剪贴板现有" & Split(a, "/")(0) & "个粘贴项目。"

Else

MsgBox "Office剪贴板是空的!"

End If

End With

End With

End Sub

Sub test2()

' *** 作Office剪贴板(全部粘贴或全部清空,以及对指定粘贴项目的粘贴或删除 *** 作)

Dim b As Byte, c As String

ApplicationScreenUpdating = False

With CommandBars("Task Pane")

WordBasiceditofficeclipboard

With Controls(1)

b = Val(Split(Caption, "/")(0)) '取得Office剪贴板现有粘贴项目数

If b > 0 Then

c = InputBox("Office剪贴板现有" & b & "个粘贴项目。" & vbCrLf & vbCrLf _

& "请输入要粘贴的项目序号,直接按回车粘贴全部,输入0全部清空", , "全部")

If c = "全部" Then

SetFocus '焦点移到任务窗格(剪贴板)

SendKeys "{LEFT 3}", False '定位到第一个粘贴项(最上面的项,即最后复制的项)

SendKeys "{TAB 2}", True '定位到“全部粘贴”

SendKeys "{ }", False '执行全部粘贴

ElseIf Val(c) > 0 And Val(c) <= b Then

SetFocus

SendKeys "{LEFT 3}", False

SendKeys "{DOWN " & Val(c) - 1 & "}", False '定位到指定的粘贴项目

SendKeys "%{DOWN 2}", False '在指定的粘贴项目下拉菜单选择“粘贴”项(前面数字改为3即“删除”项)

SendKeys "{ENTER}", False '执行粘贴(前面数字为3时执行删除)

ElseIf Val(c) = 0 Then

SetFocus

SendKeys "{LEFT 3}", False

SendKeys "{TAB 3}", True '焦点定位到“全部清空”

SendKeys "{ }", False '执行全部清空

End If

Else

MsgBox "Office剪贴板是空的!"

End If

End With

End With

SendKeys "{ESC 2}", False '焦点从任务窗格返回文档

ApplicationScreenUpdating = True

End Sub

以上就是关于如何再VBA里获取当前工作表里数据的行数和列数全部的内容,包括:如何再VBA里获取当前工作表里数据的行数和列数、excel页脚如何获取vba、怎么用VBA代码批量提取word中的特定数据到EXCEL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9559733.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存