当前位置: 首页 > 常见问题 > Excel表格

用宏实现表格自动生成,excel自动提取对应数据

  • Excel表格
  • 2023-08-15

用宏实现表格自动生成?要实现这种宏的自动运行可以使用Auto_Open过程启动和事件启动这两种方式。以下是深空游戏小编为您带来的关于让Excel工作簿中宏自动运行,希望对您有所帮助。让Excel工作簿中宏自动运行1、启动Excel并打开包含宏的工作表,那么,用宏实现表格自动生成?一起来了解一下吧。

excel自动生成宏工作表

分类:电脑/网络猜悔 >> 程序设计 >>毁核 其他编程语言

问题描述:

请看我的Bolg里有图片描述,一目了然.blog.sina/u/***********即点击按钮生成5条insert语句,用分号阁开.

知道思路的说下思路,知纤兆掘道细节的最好说详细点啦,先谢谢!

解析:

Const MAX_NUM_ROW = 5000

Const PATH_OUTPUT_ROW = 1

Const PATH_OUTPUT_COL = 2

Const FILE_OUTPUT_ROW = 2

Const FILE_OUTPUT_COL = 2

'Template Info

Const ENTRP_CDE_COL = 1

Const RPT_TMPLT_ID_COL = 2

Const RPT_FMT_TYP_COL = 3

Const FNCTN_ID_COL = 4

Const TMPLT_PATH_COL = 5

Const BNDL_PATH_COL = 6

Const RPT_NAM_GEN_CLASS_COL = 7

Const RPT_DATASOURCE_CLASS_COL = 8

Const ACK_RPT_TMPLT_ID_COL = 9

Const REC_VER_NUM_COL = 10

Const INIT_TIME_COL = 11

Const LAST_UPD_TIME_COL = 12

Const LAST_UPD_BY_COL = 13

Const START_ROW = 5

Private Type Tmplt

ENTRP_CDE As String

RPT_TMPLT_ID As String

RPT_FMT_TYP As String

FNCTN_ID As String

TMPLT_PATH As String

BNDL_PATH As String

RPT_NAM_GEN_CLASS As String

RPT_DATASOURCE_CLASS As String

ACK_RPT_TMPLT_ID As String

REC_VER_NUM As String

INIT_TIME As String

LAST_UPD_TIME As String

LAST_UPD_BY As String

End Type

Dim noOfTmplts As Integer

Dim TmpltArray(MAX_NUM_ROW) As Tmplt

Private Sub CommandButton1_Click()

generateSQL

End Sub

Private Sub generateSQL()

makedir

initData

writeToFile

End Sub

Private Sub makedir()

On Error Resume Next

'Make Directory

MkDir Sheet18.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL)

End Sub

Private Sub initData()

Erase TmpltArray

'Erase TmpltRoleArray

'noOfUserRoles = 0

noOfTmplts = 0

Dim j As Integer

'Lookup all fields

For j = START_ROW To MAX_NUM_ROW

If Sheet18.Cells(j, RPT_TMPLT_ID_COL) = "" Then

Exit For

End If

'Set Template

TmpltArray(noOfTmplts).ENTRP_CDE = Sheet18.Cells(j, ENTRP_CDE_COL)

TmpltArray(noOfTmplts).RPT_TMPLT_ID = Sheet18.Cells(j, RPT_TMPLT_ID_COL)

TmpltArray(noOfTmplts).RPT_FMT_TYP = Sheet18.Cells(j, RPT_FMT_TYP_COL)

TmpltArray(noOfTmplts).FNCTN_ID = Sheet18.Cells(j, FNCTN_ID_COL)

TmpltArray(noOfTmplts).TMPLT_PATH = Sheet18.Cells(j, TMPLT_PATH_COL)

TmpltArray(noOfTmplts).BNDL_PATH = Sheet18.Cells(j, BNDL_PATH_COL)

TmpltArray(noOfTmplts).RPT_NAM_GEN_CLASS = Sheet18.Cells(j, RPT_NAM_GEN_CLASS_COL)

TmpltArray(noOfTmplts).RPT_DATASOURCE_CLASS = Sheet18.Cells(j, RPT_DATASOURCE_CLASS_COL)

TmpltArray(noOfTmplts).ACK_RPT_TMPLT_ID = Sheet18.Cells(j, ACK_RPT_TMPLT_ID_COL)

TmpltArray(noOfTmplts).REC_VER_NUM = Sheet18.Cells(j, REC_VER_NUM_COL)

TmpltArray(noOfTmplts).INIT_TIME = Sheet18.Cells(j, INIT_TIME_COL)

TmpltArray(noOfTmplts).LAST_UPD_TIME = Sheet18.Cells(j, LAST_UPD_TIME_COL)

TmpltArray(noOfTmplts).LAST_UPD_BY = Sheet18.Cells(j, LAST_UPD_BY_COL)

noOfTmplts = noOfTmplts + 1

Next

End Sub

Private Sub writeToFile()

Dim lvOutputPath As String

lvOutputPath = Sheet18.Cells(PATH_OUTPUT_ROW, PATH_OUTPUT_COL) & "\" & Sheet18.Cells(FILE_OUTPUT_ROW, FILE_OUTPUT_COL)

If lvOutputPath = "" Then

MsgBox "File Output Path Missing!"

Exit Sub

End If

fileNum = FreeFile

' Open Output Path

Open lvOutputPath For Output As fileNum

Dim lvUserSql As String

For j = 0 To noOfTmplts - 1

lvUserSql = "INSERT INTO RS_RPT_TMPLT(ENTRP_CDE,RPT_TMPLT_ID,RPT_FMT_TYP,FNCTN_ID,TMPLT_PATH,BNDL_PATH,RPT_NAM_GEN_CLASS,RPT_DATASOURCE_CLASS,ACK_RPT_TMPLT_ID,REC_VER_NUM,INIT_TIME,LAST_UPD_TIME,LAST_UPD_BY) " & _

"values('TF','" & TmpltArray(j).RPT_TMPLT_ID & "','" & TmpltArray(j).RPT_FMT_TYP & "','" & TmpltArray(j).FNCTN_ID & "','" & TmpltArray(j).TMPLT_PATH & "','" & TmpltArray(j).BNDL_PATH & "','" & _

TmpltArray(j).RPT_NAM_GEN_CLASS & "','" & TmpltArray(j).RPT_DATASOURCE_CLASS & "','" & TmpltArray(j).ACK_RPT_TMPLT_ID & "'," & TmpltArray(j).REC_VER_NUM & "," & TmpltArray(j).INIT_TIME & "," & TmpltArray(j).LAST_UPD_TIME & ",'" & TmpltArray(j).LAST_UPD_BY & "');"

Print #fileNum, lvUserSql

Next

Close fileNum

MsgBox "Finished"

Exit Sub

Err_Open_File:

Close lvFileNum

If Err.Number = 76 Then

'Path Not Found

MsgBox Err.Description

Exit Sub

Else

MsgBox Err.Description

Exit Sub

End If

End Sub

Excel宏怎么用

介绍两种方式来生成乘法口姿信段诀表,可根据需求选用:

方式一:采用公式方式生成乘法口诀表,优点是不用宏支持,用.xlsx格式即可,拖拽即可生成,安全简单。缺点是只能在指定位置生成,不能任意位置插入。

方式二:采用宏方式,优点是可以任意位置生成乘法口诀表,缺点是必须保存为支持宏的文件格式。

方式一:公式=IF(ROW()>=COLUMN(),IF(ROW()<10,ROW()&" X "&COLUMN()&" = "&ROW()*COLUMN(),""),"")

这里指定从A1单元格开始生成。

方式二:宏生成

代码见图片

三、迹誉建议

建议为宏方式指定一个按钮或触发方坦辩式,并绑定此宏,便于使用。

excel宏程序编程100例

在Excel工作簿中创建宏后,有时用户需要宏能够随着工作表的打开自动运行。要实现这种宏的自动运行可以巧辩使用Auto_Open过程启动和事件启动这两种方式。以下是深空游戏小编为您带来的关于让Excel工作簿中宏自动运行,希望对您有所帮助。

让Excel工作簿中宏自动运行

1、启动Excel并打开包含宏的工作表,在“开发”选项卡的“代码”组中单击“宏”按钮打开“宏”对话框,单击“编辑”按钮打开VBA编辑器窗口,如图1所示。在代码窗口中将原有的过程名更改为Auto_Open,如图2所示。切换到Excel窗口,再次打开“宏”对话框,可以看到宏的名称已经改变,如图3所示。保存该文档,当再次打开该文档时,宏将自动运行。

图1单击“编辑”按钮

图2修改过程名

图3宏名称发生改变

2、在“开发”选项卡的“代码”组中单击VisualBasic按钮打开VBA编辑器,在工程辩宽搏资源管理器窗口中双击Sheet1(Sheet1)选项,如图4所示。在打开的代码窗口的“对象”下拉列表中选择Worksheet选项,在“事件”下拉列表中选择Activate选项,在Activate事件代码中添加宏过程名,如图5所示。保存文档,这样当工作表被激活时宏将自动执行。

免费启用宏Excel

一、让不同类型数据用不同颜色显示

在工资表中,如果想让大于等于2000元的工资总额以“红色”显示,大于等于1500元的工资总额以“蓝色”显示,低于1000元的工资总额以“棕色”显示,其它以“黑色”显示,我们可以这样设置。

1.打开“工资表”工作簿,选中“工资总额”所在列,执行“格式→条件格式”命令,打开“条件格式”对话框。单击第二个方框右侧的下拉按钮,选中“大于或等于”选项,在后面的方框中输入数值“2000”。单击“格式”按钮,打开“单元格格式”对话框,将“字体”的“颜色”设置为“红色”。

2.按“添加”按钮,并仿照上面的操作设置好其它条件(大于等于1500,字体设置为“蓝色”;小于1000,字体设置为“棕色”)。

3.设置完成后,按下“确定”按钮。

看看工资表吧,工资总额的数据是不是按你的要求以不同颜色显示出来了。

二、建立分类下拉列表填充项

我们常常要将企业的名称输入到表格中,为了保持名称的一致性,利用“数据有效性”功能建了一个分类下拉列表填充项。

1.在Sheet2中,将企业名称按类别(如“工业企业”、“商业企业”、“个体企业”等)分别输入不同列中,建立一个企业名称数据库。

2.选中A列(“工业企业”名称所在列),在“名称”栏内,输入“工业企业”字符后,按“回车”键进行确认。

excel高级筛选两个条件或的关系

我天天做报表,,,很简单,首先你的模板公式宴御一定都要弄好,,罩竖,复制一个,,在新建一个文件,,粘贴过去,,在编辑就好了,,很简单的

!物祥大!!!

以上就是用宏实现表格自动生成的全部内容,方式一:采用公式方式生成乘法口诀表,优点是不用宏支持,用.xlsx格式即可,拖拽即可生成,安全简单。缺点是只能在指定位置生成,不能任意位置插入。方式二:采用宏方式,优点是可以任意位置生成乘法口诀表。

猜你喜欢