Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中,有没有一种方法可以使页面顶部成为一个编辑、查看区域,以查看下面列表中显示的详细信息?_Excel_Macos_Office365 - Fatal编程技术网

在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
创建的用户表单示例:

检测选择更改 在工作表的代码模块中,可以使用
工作表\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

  • 对用户表单进行编码 在项目资源管理器中右键单击用户表单,然后选择查看代码。在这里,我们将为您的userform分配各种函数。首先,让我们添加一个模块范围的变量,该变量将引用您的工作表。在代码模块顶部,输入以下两行:

    选项显式
    专用ws-As工作表
    
    接下来,我们将添加一些代码,这些代码将确定初始化表单时将发生什么。首先,我们要将刚刚在上面创建的
    ws
    变量设置为您将在其上使用此表单的工作表。由于您没有在问题中指定工作表名称,我们将使用工作表名称
    Sheet1
    (请在此处随时更新ws-name)

    我们还想继续并自动填充userform中的文本框。这看起来与我们在上面工作表的代码模块中输入的代码惊人地相似

    Private子用户表单_Initialize()
    作为射程的弱小目标
    设置ws=ThisWorkbook.Worksheets(“她