在Excel中,有没有一种方法可以使页面顶部成为一个编辑、查看区域,以查看下面列表中显示的详细信息?
我很抱歉,但我不知道如何解释这一点,所以也许我可以用一张图片来说明在Excel中,有没有一种方法可以使页面顶部成为一个编辑、查看区域,以查看下面列表中显示的详细信息?,excel,macos,office365,Excel,Macos,Office365,我很抱歉,但我不知道如何解释这一点,所以也许我可以用一张图片来说明 Id: 4 English: Here is an area to enter a lot of data Japanese: Japanese language meaning of the above Id English Japanese 1 abc def 2 ghi
Id: 4
English: Here is an area to enter a lot of data
Japanese: Japanese language meaning of the above
Id English Japanese
1 abc def
2 ghi jol
3 mno per
4 Here is an area to .. Japanese Language meaning of the above
5 aaa bbb
在屏幕的顶部,我希望有一个编辑区,在那里我可以看到全文并输入新内容。在下面,我希望看到多行数据,当我点击一行的任何部分时,我希望它出现在上面
如果我能找到某种示例,我可以编写一个解决方案,但现在我甚至不确定要查找什么,或者这种表单是否有特定的名称 如果您使用的是Office 365,您描述的场景将更适合SharePoint列表,您可以在其中编辑表单中的一行数据 目前尚不清楚Office365对您的问题有何影响,因为它是一种许可模式,而不是软件版本
在桌面Excel中,您可以使用Excel表格对象作为数据源,并创建VBA表格用于数据输入和显示。在web和本网站上有很多这样的例子。我使用excel,这段代码在我这方面很好,我不确定这是否适用于office 365 首先冻结标题和上面的行 然后,如果数据在sheet1上,则sheet1上必须有以下两段代码以及这些是工作表事件函数
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'show data of the select cells
Dim activergn, insctrgn ' active range and intersect range
Set activergn = Range("a7:c" & Range("a65536").End(xlUp).Row) ' initial range, you could use "7:"& Range("a65536").End(xlUp).Row to achive "any part of the row"
Set insctrgn = Application.Intersect(Target, activergn)
If Not insctrgn Is Nothing Then 'if target range is in the datarange,then B3 & C3 show the value of target address
Range("b1").Value = "$B$" & insctrgn.Row
Range("b2").Value = Range("a" & insctrgn.Row).Value
Range("b3").Value = Range("b" & insctrgn.Row).Value
Range("b4").Value = Range("c" & insctrgn.Row).Value
Exit Sub
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'when value in cell b3 change, update target cell
If Target.Address = Range("b3").Address Then 'if edit in cell B3, then update target cell to value of B3
Range(Range("b1").Value).Value = Target.Value
Exit Sub
End If
End Sub
您可以简单地创建一个用户表单,而不必为此任务使用实际的工作表空间 创建用户表单
- 在VBE中,右键单击项目>插入>用户表单
- 添加3个文本框以表示数据列,并添加标签
- 在我的示例中,我添加了第四个文本框来指示行号。如果需要,您可以使用此文本框更改行,而无需单击工作表
- 添加两个命令按钮,一个用于使用您调整过的任何文本更新工作表,另一个用于退出表单
- 将对象命名为有意义的对象
- 我将userform命名为ufDataViewer
- 这可以在属性查看器中的
(名称)
- 这可以在属性查看器中的
- 将更新按钮命名为
btnUpdate
- 将取消按钮命名为
btnCancel
- 将ID文本框命名为
tbID
- 将行#框命名为
tbRow
- 将英文文本框命名为
tbEnglish
- 最后,将最后一个文本框命名为
tbJapanese
- 我将userform命名为ufDataViewer
工作表\u SelectionChange()
事件自动更新用户表单中的文本。在VBE中,选择要监视这些更改的特定图纸,然后添加以下代码块:
Private子工作表\u selection更改(ByVal目标作为范围)
使用ufDataViewer
.tbID.Value=Me.Cells(Target.Row,“A”).Value
.tbRow.Value=Target.Row
.tbEnglish.Value=Me.Cells(Target.Row,“B”).Value
.tbJapanese.Value=Me.Cells(Target.Row,“C”).Value
以
端接头
上面的代码块将使用您通过单击行内部手动选择的数据自动更新您的userform
方法来显示窗体
我们需要添加一些代码来显示userform。我们有几种方法来处理这个问题,您可以混合和匹配这些方法中的任何一种(您不需要做所有这些!)
打开工作簿时显示用户窗体
在VBE项目资源管理器中,双击ThisWorkbook
,并添加以下代码块:
Private子工作簿\u Open()
ufDataViewer.Show vbModeless
端接头
对于接下来的两个方法,首先需要在公共模块中创建一个例程,该例程将显示userform。在项目资源管理器中,右键单击项目并插入模块
。将此代码添加到此模块:
子showUserform()
ufDataViewer.Show vbModeless
端接头
使用“宏”对话框
您只需同时按Alt F8键并选择showUserform
并单击run,即可运行上述代码
从工作表命令按钮显示用户表单
Developer选项卡
(如果不可见,)添加命令按钮showUserForm
选项显式
专用ws-As工作表
接下来,我们将添加一些代码,这些代码将确定初始化表单时将发生什么。首先,我们要将刚刚在上面创建的ws
变量设置为您将在其上使用此表单的工作表。由于您没有在问题中指定工作表名称,我们将使用工作表名称Sheet1
(请在此处随时更新ws-name)
我们还想继续并自动填充userform中的文本框。这看起来与我们在上面工作表的代码模块中输入的代码惊人地相似
Private子用户表单_Initialize()
作为射程的弱小目标
设置ws=ThisWorkbook.Worksheets(“她