Excel, добавление дополнительной информации в ячейку структурированным способом

У меня есть excel-лист с планом на год. Используя недели для столбцов, а затем цветовой индикатор для недель, где" вещи " происходит.

такой:

enter image description here

мой вопрос: есть ли способ (встроенный или с помощью дополнений) добавить информацию в эту ячейку более структурированным образом?

Я думаю, может быть, немного формы с

  • имя
  • описание
  • бюджет
  • бла бла
  • Foo

таким образом, я мог бы сохранить свой обзор, но в то же время добавить дополнительную информацию в каждую ячейку.

кто-нибудь знает о способе достижения этой цели?

3
задан Markus Knappen Johansson
18.11.2022 14:52 Количество просмотров материала 2876
Распечатать страницу

1 ответ

Я закончил создание пользовательской формы с некоторыми текстовыми полями и кнопкой для сохранения значений в том же col/row на другом листе под названием "данные".

что-то вроде этого:

Dim xml As String

xml = xml + "<CellDetails>"
xml = xml + "  <Budget>" + UserForm1.txtBudget.Text + "</Budget>"
xml = xml + "  <Comments>" + UserForm1.txtComments.Text + "</Comments>"
xml = xml + "  <StartDate>" + Format(MonthView1.Value, "yyyy-mm-dd") + "</StartDate>"
xml = xml + "  <EndDate>" + Format(MonthView2.Value, "yyyy-mm-dd") + "</EndDate>"
xml = xml + "</CellDetails>"

ThisWorkbook.Sheets("Data").Range(Selection.Address).Value = xml

затем я запускаю это с листа, используя event-listner на "правом щелчке" ячейки и заполняю элементы управления формы значениями.

Частная Суб Workbook_SheetBeforeRightClick(Как Byval SH А Объект, Цель Бывал В Диапазоне, Отменить Как Boolean)

По Ошибки Продолжить Следующий

' срабатывает только при нажатии клавиши Ctrl Если IsControlKeyDown () = True, То

    If Not ThisWorkbook.Sheets("Data").Range(Selection.Address).Value = "" Then

        Dim XDoc As MSXML2.DOMDocument
        Set XDoc = CreateObject("MSXML2.DOMDocument")
        XDoc.LoadXML (ThisWorkbook.Sheets("Data").Range(Selection.Address).Value)

        ' Setting the form values
        UserForm1.txtBudget.Text = XDoc.SelectSingleNode("//CellDetails/Budget").Text
        UserForm1.txtComments.Text = XDoc.SelectSingleNode("//CellDetails/Comments").Text

        ' Setting the dates
        UserForm1.MonthView1.Value = CDate(XDoc.SelectSingleNode("//CellDetails/StartDate").Text)
        UserForm1.lbStartDate = XDoc.SelectSingleNode("//CellDetails/StartDate").Text
        UserForm1.MonthView2.Value = CDate(XDoc.SelectSingleNode("//CellDetails/EndDate").Text)
        UserForm1.lbEndDate = XDoc.SelectSingleNode("//CellDetails/EndDate").Text
    End If

    UserForm1.Show


    Cancel = True

End If
On Error GoTo 0

Конец Sub

0
отвечен Markus Knappen Johansson 2022-11-19 22:40

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх