В VBA, как возвратить массив / или записать в ячейки с помощью функции?

Я должен был изменить контроллер. Я добавил еще одну функцию под названием «iedit», чем в iedit.html.twig, которую я назвал «duyurular_fotoekle». Если вы не могли понять, что я сделал, не стесняйтесь спрашивать.

/**
     * @Route("/{id}/fotoekle", name="duyurular_fotoekle", methods={"POST"})
     */
    public function fotoekle(Request $request, Duyurular $duyurular, $id): \Symfony\Component\HttpFoundation\RedirectResponse
    {
        $form = $this->createForm(DuyurularType::class, $duyurular);
        $form->handleRequest($request);
        echo ('sefa 2');
        $file = $request->files->get('image');
        // $file = $duyurular->getFotograf();
        // $file = $form->get('fotograf')->getData();
        $fileName = $this->generateUniqueFileName().'.'.$file->guessExtension();
        try{
            $file->move(
                $this->getParameter('fotograflar_directory'),
                $fileName
            );
        }catch (FileException $e){
        }
        $duyurular->setFotograf($fileName);
        $this->getDoctrine()->getManager()->flush();
        return $this->redirectToRoute('duyurular_iedit', ['id' => $duyurular->getId(),]);
    }

    /**
     * @Route("/{id}/iedit", name="duyurular_iedit", methods="GET|POST")
     */
    public function iedit(Request $request,$id, Duyurular $duyurular,DuyurularRepository $duyurularRepository): Response
    {
        $duyurulist = $duyurularRepository ->findAll();
        $duyuruname = $duyurularRepository ->findBy(['id'=> $duyurular->getId()]);
        $form = $this->createForm(DuyurularType::class, $duyurular);
        $form->handleRequest($request);

        echo ('sefa 0');
        $this->getDoctrine()->getManager()->flush();
        if ($form->isSubmitted()) {

            echo ('sefa 1');
            return $this->redirectToRoute('duyurular_index', ['id' => $duyurular->getId()]);
        }

        return $this->render('duyurular/iedit.html.twig', [
            'duyurular' => $duyurular,
            'id'=>$id,
            'duyurulist' => $duyurulist,
            'duyuruname' => $duyuruname,
            'form' => $form->createView(),
        ]);
    }
5
задан 11 May 2009 в 06:54
поделиться

2 ответа

Следующий код красиво записывает массив в диапазон ячеек:

Function WriteArray() As Variant
    Dim AbcList(0 To 2) as Variant
    AbcList(0) = "A"
    AbcList(1) = "B"
    AbcList(2) = "C"
    WriteArray = AbcList
End Function

Function WriteArrayToSpreadsheet()
    Dim MyArray As Variant
    MyArray = WriteArray()

    Dim StartRow, i As Integer
    StartRow = 1
    For i = 0 To UBound(MyArray)
        Range("A" & i + StartRow).Value = MyArray(i)
    Next
End Function

При этом я хотел бы увидеть ту часть кода, в которой вы на самом деле пытаетесь ее получить. в электронную таблицу, а не там, где вы строите массив. Тогда я смогу вам помочь!

6
ответ дан 13 December 2019 в 22:16
поделиться

Вам не разрешено писать в ячейки, не являющиеся абонентами, непосредственно из функции рабочего листа в Excel.

Если вы хотите использовать функцию массива (с помощью Shift-Ctrl-Enter), вам нужно изменить свой код на:

Function WriteArray() As Variant
    Dim arr(0 To 2, 0 To 1)
    arr(0, 0) = "A"
    arr(1, 0) = "B"
    arr(2, 0) = "C"
    WriteArray = arr
End Function

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

3
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: